// 启动进程
bool StartProgress(CString& strError)
{CString strExeName;strExeName.Format(_T("%s"), _T("test.exe"));CString strsCommandLine;  char chCommandLine[MAX_PATH];  DWORD dwExitCode;  PROCESS_INFORMATION pi;  STARTUPINFO     si;//用于指定新进程的主窗口特性的一个结构  memset(&si, 0, sizeof(si));  si.cb = sizeof(STARTUPINFO);  si.dwFlags = STARTF_USESHOWWINDOW;  si.wShowWindow = SW_SHOW;//SW_HIDE隐藏窗口  csCommandLine = strExeName;  ::strcpy(chCommandLine, csCommandLine);  CString strPath;strPath.Format(_T("%s\\"), GetAppPath());//启动进程  BOOL ret = CreateProcess(NULL, chCommandLine, NULL, NULL, FALSE, 0, NULL, strPath, &si, &pi);  if (ret)  {  //关闭子进程的主线程句柄  CloseHandle(pi.hThread);    //关闭子进程句柄  CloseHandle(pi.hProcess);return true;}else{DWORD dwErr = ::GetLastError();CString sInfo;sInfo.Format(_T("启动 %s 失败, 错误码: 0x%X"), csCommandLine, dwErr);strError = sInfo;}return false;
}
// 查询进程
bool IsExistProcess(const CString& szProcessName)
{PROCESSENTRY32 processEntry32;   HANDLE toolHelp32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0);  if (((int)toolHelp32Snapshot) != -1)  {  processEntry32.dwSize = sizeof(processEntry32);  if (Process32First(toolHelp32Snapshot, &processEntry32))  {  do  {  if(strcmp(szProcessName ,processEntry32.szExeFile) == 0)  {  CloseHandle(toolHelp32Snapshot);  return true;  }  }while (Process32Next(toolHelp32Snapshot, &processEntry32));  }  CloseHandle(toolHelp32Snapshot);  }  return false;
}// 强制关闭进程
bool KillProcessByName(const TCHAR *lpszProcessName)
{unsigned int   pid = -1;  BOOL    retval = TRUE;  if (lpszProcessName == NULL)  return false;  DWORD dwRet = 0;  HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS,0 );  PROCESSENTRY32 processInfo;  processInfo.dwSize = sizeof( PROCESSENTRY32 );  int flag = Process32First( hSnapshot, &processInfo );  // Find the process with name as same as lpszProcessName  while (flag != 0)  {  if (_tcscmp(processInfo.szExeFile, lpszProcessName) == 0) {  // Terminate the process.  pid = processInfo.th32ProcessID;  HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid);  if (TerminateProcess(hProcess, 0) != TRUE){ // Failed to terminate it.  retval = FALSE;  break;  }  }  flag = Process32Next(hSnapshot, &processInfo);   } // while (flag != 0)  CloseHandle(hSnapshot);  if (pid == -1)  return FALSE;  return (retval != FALSE);
}

MFC关于进程使用:创建、关闭及查询进程相关推荐

  1. cidaemon.exe是什么进程及如何关闭cidaemon.exe进程

    问题描述:  这段时间机器总是出现一个奇怪的问题:cidaemon.exe进程占用CUP率98%以上,大大影响了电脑的正常使用.资源管理器中出现多个cidaemon.exe进程,强制结束占用cpu率最 ...

  2. linux下进程的创建代码,Linux下进程创建分析

    如何创建一个进程? 子进程拷贝父进程的代码和数据,进程拥有自己的独占资源(写时拷贝),父,子进程共享代码区,不共享数据区(私有化) 当使用pid_t fork(void)创建进程时,若创建成功,给父进 ...

  3. linux查看是否有某个运行的进程命令(不包括查询进程这条语句)

    转自:http://www.cnblogs.com/zdz8207/p/3760891.html linux查看是否有某个运行的进程命令:例如,查询是否包含 "my_post" 关 ...

  4. APUE学习笔记-守护进程的创建

    2019独角兽企业重金招聘Python工程师标准>>> #include "myapue.h" #include <syslog.h> #includ ...

  5. 守护进程的创建方法和步骤

    概念:      守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进程.Linux的大多数服务器就是用守护进 ...

  6. linux 进程(二) --- 进程的创建及相关api

    一.进程的创建fork()函数 由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回两次.两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进程 ...

  7. Linux系统编程之--守护进程的创建和详解【转】

    本文转载自:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终 ...

  8. linux系统编程之进程(八):守护进程详解及创建,daemon()使用

    linux系统编程之进程(八):守护进程详解及创建,daemon()使用 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等 ...

  9. java什么时候创建进程,Java创建进程

    Java创建进程 1 进程的概念 1 1.1 进程的概念 1 1.2 进程的特征 1 1.3 进程与线程区别 1 2 进程的创建 1 2.1 JAVA进程的创建 1 2.1.1 ProcessBuil ...

最新文章

  1. javascript模块_JavaScript模块第2部分:模块捆绑
  2. pyqt5入门教程(五)
  3. MySQL 5.1 安装过程中报apply security setting错误的解决办法 收藏
  4. 后端技术:Mybatis是如何解析配置文件的?
  5. 为什么python打不开_python文件打不开如何解决
  6. Currently, the Linux Mint team has 21 members
  7. js里css不起作用,CSS文件在NODE js中不起作用
  8. FFmpeg源代码简单分析:avio_open2()
  9. 地理空间数据云下载遥感影像
  10. java sql 工具类_Java防SQL注入工具类
  11. 一篇适合小白的Shiro教程
  12. Win7安装IIS详解
  13. 中国接线端子行业研究与投资前景研究报告(2022版)
  14. Nature子刊 | 绘制植物叶际菌群互作图谱以建立基因型表型关系
  15. ZTD 简单做十个好习惯总结
  16. python爬虫—练习题(re,requestBeautifulSoup,selenium)
  17. matlab如何寻找兼职
  18. ubuntu 双屏显示的设置
  19. 蓝桥杯国赛8-JavaA-2-瓷砖样式
  20. 阿里云之如何使用阿里大鱼给喜欢的人发短信(1)

热门文章

  1. 等级保护防火墙_安全防护设备
  2. 2010十大最热门IT职位
  3. Excel表格如何设置打印区域?
  4. Makefile shell subst $(1)
  5. Wallis公式及其应用
  6. 如何在Excel/WPS表格中查询17Track国际物流快递?
  7. 《MATLAB智能算法30个案例》:第8章 基于量子遗传算法的函数寻优算法
  8. Turtle系列之画一个简易的交通标志,安排安排【留作业】
  9. SAP. T-Code: su01用户维护 sap学习手册I
  10. 怎么从已有文件中挑选需要的文字重新生成新文件_Word文字处理中,如果单击“文件”选项卡中的()按钮,Word会在工作区产生新的空文档。...