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就存在

解决方案 »

  1.   

    正好我刚碰到这个问题,也是用::FindWindow解决的。
    FindWindow有2个参数,前面一个是类名,后面一个是窗口title,如果你的agent.exe的窗口title确定不变的话,可以使用第二个参数,类名给NULL。如果窗口title是随机变化的(比如记事本就可能是“无标题-记事本”,“编辑1-记事本”),可以通过类名来判断,窗口tilte给NULL好了。类名可以运行spy++,里面有个FindWindow的工具,把里面的图标拖到你的agent.exe的窗口上就可以知道类名了。
    希望能够帮助到你。
      

  2.   

    FINDWINDOW不错哈! wistaria(听风听雨)的也很好用,结了,给分!