本帖最后由 chishingchan 于 2021-2-21 09:12 编辑
有些进程程序在后台一闪而过,使用 procexp.exe 也未能及时提取到命令行参数信息!
所以,参考了帮助文件编写了一段代码,但是好像达不到想要的效果!(代码在最后)
求助!求助!求助!
1、在桌面上建立记事本的快捷方式(带参数:abc.txt)
2、双击桌面上的记事本快捷方式,运行 procexp.exe 打开属性
#RequireAdmin
#include <WinAPIProc.au3>
#include <WinAPIHObj.au3>
Local $sProcess = "notepad.exe"
Do
;存在进程则退出循环
Until ProcessExists($sProcess)
Local $aAdjust, $aList = 0, $sPCL
Local $hToken = _WinAPI_OpenProcessToken(BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY))
_WinAPI_AdjustTokenPrivileges($hToken, $SE_DEBUG_NAME, $SE_PRIVILEGE_ENABLED, $aAdjust)
If Not (@error Or @extended) Then
$aList = ProcessList()
For $i = 1 To $aList[0][0]
If $aList[$i][0] = $sProcess Then
$sPCL = _WinAPI_GetProcessCommandLine($aList[$i][1])
MsgBox(0, $aList[$i][0], $sPCL)
ClipPut($sPCL)
EndIf
Next
EndIf
_WinAPI_AdjustTokenPrivileges($hToken, $aAdjust, 0, $aAdjust)
_WinAPI_CloseHandle($hToken)
已找到解决办法:编译成64位的 exe 文件再运行即可! |
|