<b>不知道程序的窗口句柄时完毕该程序的进程</b>[VC/C++编程]
本文“<b>不知道程序的窗口句柄时完毕该程序的进程</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假如只要判断EXE的名字(不需求判断途径),可以省略EnumProcess,因为pe32.szExeFile 里就已经有EXE的名字了,因为没有途径,所以才又利用了函数EnumProcess来获得完好的途径.这样就简便一些了.
BOOL CALLBACK EnumWinProc(HWND hwnd, LPARAM lParam)
{
DWORD dwID;
GetWindowThreadProcessId(hwnd, &dwID);
if (dwID == (DWORD)lParam) {
PostMessage(hwnd, WM_QUIT, 0, 0);
return FALSE;
}
return TRUE;
}
void KillProgram(LPCSTR ExeName)
{
char *File;
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
if (!ExeName || !ExeName[0])
return;
File = strrchr(ExeName, '\\');
if (File!=0) ExeName = File+1;
hProcessSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == (HANDLE)-1) return;
memset(&pe32, 0, sizeof(pe32));
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
do {
memset(&me32, 0, sizeof(me32));
me32.dwSize = sizeof(me32);
File = strrchr(pe32.szExeFile, '\\');
File = File? File+1 : pe32.szExeFile;
if (strcmpi(File,ExeName)==0) {
EnumWindows((WNDENUMPROC)EnumWinProc,
pe32.th32ProcessID);
}
}
while(Process32Next(hProcessSnap,&pe32));
}
CloseHandle(hProcessSnap);
}
以上是“<b>不知道程序的窗口句柄时完毕该程序的进程</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |