DWORD GetProcessIdFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
while(1)
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}
};
CloseHandle(hSnapshot);
return id;
}
GetProcessIdFromName("agent.exe")如果不为0就存在
{
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
while(1)
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}
};
CloseHandle(hSnapshot);
return id;
}
GetProcessIdFromName("agent.exe")如果不为0就存在
FindWindow有2个参数,前面一个是类名,后面一个是窗口title,如果你的agent.exe的窗口title确定不变的话,可以使用第二个参数,类名给NULL。如果窗口title是随机变化的(比如记事本就可能是“无标题-记事本”,“编辑1-记事本”),可以通过类名来判断,窗口tilte给NULL好了。类名可以运行spy++,里面有个FindWindow的工具,把里面的图标拖到你的agent.exe的窗口上就可以知道类名了。
希望能够帮助到你。