这是我的代码,用于检查进程名称是否存在:
bool isRunning (LPCSTR processname)
{
HANDLE Snapshot;
Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(Snapshot != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 ProcessEntry;
BOOL Succeed;
ProcessEntry.dwSize = sizeof(PROCESSENTRY32);
Succeed = Process32First(Snapshot, &ProcessEntry);
while(Succeed)
{
if(lstrcmp(ProcessEntry.szExeFile,processname) == 0)
{
return true;
}
Succeed = Process32Next(Snapshot, &ProcessEntry);
}
CloseHandle(Snapshot);
}
}
我如何使用它或编辑它来从其进程名称获取窗口标题(例如" notepad.exe")? 如果它存在,程序将返回文本,如"新文本文档 - 记事本"
答案 0 :(得分:1)
这实际上是在Microsoft's description of CreateToolhelp32Snapshot
中解决的。
它说“你可以使用QueryFullProcessImageName
函数从32位进程中检索32位和64位进程的可执行映像的全名。”
您基本上需要通过HANDLE
来检查QueryFullProcessImageName
。