例如,从PID 10948,我想获得的进程名火狐.exe在
我尝试过使用GetModuleFileNameEx
、GetModuleFileName
、GetProcessImageFileName
、和{╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ 7Σ
我的代码:
DWORD* thread = new DWORD;
TCHAR szName[_MAX_FNAME];
HANDLE processhandle = OpenProcess(PROCESS_QUERY_INFORMATION, false, GetWindowThreadProcessId(GetForegroundWindow(), thread));
GetProcessImageFileName(processhandle, szName, _MAX_FNAME);
strrchr(szName, '\\');
最初,我尝试使用python,使用win32gui库,使用进程的句柄来执行此操作,但它无法找到命令提示符句柄。我不在乎我用哪种语言来解决识别当前正在使用的程序的问题,只要我能找到我可能使用的所有程序的名称。在
OpenProcess()
如果失败,则返回NULL
。请致电GetLastError()
找出原因。与GetProcessImageFileName()
相同。在另外,尝试使用
PROCESS_QUERY_LIMITED_INFORMATION
,因为它需要较少的权限。在另外,您应该在填充
szName
缓冲区之前将其归零。在另外,您不需要使用
new
为GetWindowThreadProcessId()
分配DWORD
。在试试这个:
相关问题 更多 >
编程相关推荐