Celia_D 2019-10-17 22:28 采纳率: 50%
浏览 587

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条回答

  • threenewbee 2019-10-18 09:23
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题