当目录带有空格时,如何获得程序的完整路径?

JeanLaw 2006-03-17 10:27:59
比如当程序在Program Files文件夹下的时候,用App.path获得的路径就有错,因为路径包含空格。
...全文
109 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mister 2006-03-17
  • 打赏
  • 举报
回复
不会吧,是不是 VB 或系统有问题?我试了一下 N 个空格 App.Path 也能取出来。

试一下下面的函数(API申明和常量自己添加一下):

Public Function GetWindowFileName(ByVal hWnd As Long) As String
Dim hProcess As Long
Dim ProcID As Long
Dim mModules(1 To 200) As Long
Dim cbNeed As Long
Dim ModuleName As String
Dim nSize As Long
Dim lRet As Long

GetWindowThreadProcessId hWnd, ProcID
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcID)
lRet = EnumProcessModules(hProcess, mModules(1), 200, cbNeed)

If lRet <> 0 Then
ModuleName = Space(MAX_PATH)
nSize = 500
lRet = GetModuleFileNameExA(hProcess, mModules(1), ModuleName, nSize)
GetWindowFileName = Left(ModuleName, lRet)
End If

lRet = CloseHandle(hProcess)
End Function

该函数是通过窗口句柄判断文件名,它是通过 GetWindowThreadProcessId 获取进程 ID 然后再获取文件名的,可以改一下用 GetCurrentProcess 函数直接取出本程序的进程 ID

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧