MFC:如何实现终止进程

请问要怎么在MFC中实现终止进程的功能呢?试着调用TerminateProcess()函数失败了......以下是从网上寻找的代码,修改后仍不成功,运行后点击按终止进程按钮后直接退出对话框了

void CProcessDlg::OnBnClickedButton5()
{
    UpdateData(TRUE);
    HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    PROCESSENTRY32 pe32; 
    pe32.dwSize=sizeof(PROCESSENTRY32);
    BOOL bResult=Process32First(hSnapshot,&pe32);
   while(bResult) 
    { 
       CString str=pe32.szExeFile; 
       if(str==v_softname) 
           {  
              this->MessageBox(L"查找到进程");
                   break;
           } 
       else
           { 
              bResult=Process32Next(hSnapshot,&pe32);
            }
     }
     CloseHandle(hSnapshot);
     //利用查找到的进程ID,打开进程:
     HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);  
     //关闭进程
     BOOL bRet = TerminateProcess(hProcess,0);
     if(bRet)
         this->MessageBox(L"success");
     else
         this->MessageBox(L"could not");
    UpdateData(FALSE);      
}

v_softname是设置的edit control控件

1个回答

查找到的进程id和任务管理器的对比没有,是不是一样
关闭的是什么进程,有没有权限

fangdongheiha
Lafayette* 查找不到进程ID呢,就直接退出窗口了
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问