找回密码
 加入
搜索
楼主: 黑色袜子

[系统综合] 如何通过进程名或者PID获取进程路径[已解决]

 火.. [复制链接]
发表于 2013-10-31 15:09:32 | 显示全部楼层
回复 2# afan


afan版主,你好,这边为什么打开提示错误: _WinAPI_GetModuleFileNameEx(): 未定义的函数.,头文件我看了下,是一样的。多版本差距很大么?
发表于 2013-10-31 15:36:11 | 显示全部楼层
本帖最后由 afan 于 2013-10-31 15:37 编辑

回复 16# mikezunya


    WinAPIEx.au3 这个头文件会由于升级而 增、删、改、重命名某(些)函数,所以会有此情况。
可以提取使用。
$PID = ProcessExists("explorer.exe")
MsgBox(0, "", _WinAPI_GetModuleFileNameEx($PID))


Func _WinAPI_CloseHandle($hObject)
        Local $aResult = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hObject)
        If @error Then Return SetError(@error, @extended, False)
        Return $aResult[0]
EndFunc   ;==>_WinAPI_CloseHandle
Func _WinAPI_GetCurrentProcessID()
        Local $aResult = DllCall("kernel32.dll", "dword", "GetCurrentProcessId")
        If @error Then Return SetError(@error, @extended, 0)
        Return $aResult[0]
EndFunc   ;==>_WinAPI_GetCurrentProcessID
Func _WinAPI_GetModuleFileNameEx($PID = 0)
        If Not $PID Then
                $PID = _WinAPI_GetCurrentProcessID()
                If Not $PID Then
                        Return SetError(1, 0, 0)
                EndIf
        EndIf
        Local $hProcess = DllCall('kernel32.dll', 'ptr', 'OpenProcess', 'dword', 0x00000410, 'int', 0, 'dword', $PID)
        If (@error) Or (Not $hProcess[0]) Then
                Return SetError(1, 0, '')
        EndIf
        Local $tPath = DllStructCreate('wchar[1024]')
        Local $Ret = DllCall('psapi.dll', 'int', 'GetModuleFileNameExW', 'ptr', $hProcess[0], 'ptr', 0, 'ptr', DllStructGetPtr($tPath), 'int', 1024)
        If (@error) Or (Not $Ret[0]) Then
                $Ret = 0
        EndIf
        _WinAPI_CloseHandle($hProcess[0])
        If Not IsArray($Ret) Then
                Return SetError(1, 0, '')
        EndIf
        Return DllStructGetData($tPath, 1)
EndFunc   ;==>_WinAPI_GetModuleFileNameEx
发表于 2015-8-4 10:55:01 | 显示全部楼层
回复 15# 时空之门


    谢谢,是头文件不一样
发表于 2017-9-16 15:23:03 | 显示全部楼层
回复 9# xms77


    你是在哪里查阅到PROCESS_ALL_ACCESS等于0x001F0FFF的?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 08:25 , Processed in 0.068808 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表