fangdongheiha
Celia_D
采纳率41.2%
2019-10-17 22:28 阅读 449

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条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-10-18 09:23

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

    点赞 评论 复制链接分享

相关推荐