16,472
社区成员
发帖
与我相关
我的任务
分享
PROCESSENTRY32 pe32;
HANDLE hSnaphot;
HANDLE hApp;
DWORD dProcess;
hSnaphot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); // 获取进程快照
Process32First(hSnaphot, &pe32); // 指向第一个进程
do
{
if (lstrcmpi(pe32.szExeFile,_T("main.exe"))==0) // 查找进程名称为 NotePad.exe (记事本的程序)
{
dProcess = pe32.th32ProcessID;
hApp= OpenProcess(
PROCESS_VM_OPERATION|SYNCHRONIZE,FALSE,dProcess);
CWnd* pWnd=CWnd::FindWindow("OwnClassEluTongFaxDlg",NULL); //这里面指定要关闭的标题(与任务管理器中的要一致)
if(NULL != pWnd)
{
//pWnd->PostMessage(WM_CLOSE); //发送一个关闭窗口的消息,这个进程无法关闭
}
// 根据进程 ID 获取程序的句柄
if (!WaitForSingleObject(hApp,INFINITE))// 等待记事本程序关闭
{
break;
}
}
}while(Process32Next(hSnaphot, &pe32)); // 不断循环直到取不到进程
//替换文件操作
//....
return FALSE;