用CreateProcess启动MyEclipse,5秒后终止该进程。

IDE:VS2010

#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
using namespace std;bool killProcess(PROCESS_INFORMATION& processInfo){DWORD processId = processInfo.dwProcessId;PROCESSENTRY32 processEntry = {0};processEntry.dwSize = sizeof(PROCESSENTRY32);//给系统内的所有进程拍一个快照HANDLE handleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//遍历每个正在运行的进程if( Process32First(handleSnap, &processEntry) ){BOOL isContinue = TRUE;//终止子进程do{if( processEntry.th32ParentProcessID == processId ){HANDLE hChildProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processEntry.th32ProcessID);if( hChildProcess ){TerminateProcess(hChildProcess, 0);CloseHandle(hChildProcess);}}isContinue = Process32Next(handleSnap, &processEntry);}while( isContinue );HANDLE hBaseProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId);if( hBaseProcess ){TerminateProcess(hBaseProcess, 0);CloseHandle(hBaseProcess);}}DWORD exitCode = 0;GetExitCodeProcess(processInfo.hProcess, &exitCode);cout<<"exitCode="<<exitCode<<endl;if( exitCode == STILL_ACTIVE ){return false;}return true;
}int main(){STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory( &pi, sizeof(pi) );ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);if( CreateProcess(NULL, "D:\\MyEclipse2014GA\\myeclipse.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) ){Sleep(5000);cout<<killProcess(pi)<<endl;;}else{cout<<"创建失败!"<<endl;HANDLE hProcess = GetCurrentProcess();TerminateProcess(hProcess,0);}return 0;
}

CreateProcess TerminateProcess 创建与终止进程 demo相关推荐

  1. 进程控制(进程创建与终止 | 进程等待 | 程序替换)

    文章目录 一.进程创建 1. fork函数 2. fork创建进程 3. 写时拷贝 二.进程终止 1. 进程退出有三种情况 2. 常见进程终止方法 三.进程等待 背景(必要性) 1. 进程等待的方法 ...

  2. Linux系统调用:创建和终止进程

    1.进程的三种状态 1.运行.要么在被CPU执行,要么等待被执行且最终会被内核调度. 2.停止.执行被挂起且不会被调度.收到特定信号后才能继续运行. 3.终止.进程永远地停止了.可能的原因有三种:(1 ...

  3. Linux无法终止进程,如何在Linux中终止进程

    您是否曾经遇到过启动应用程序,而在使用该应用程序时突然变得无响应并意外崩溃的情况?您尝试再次启动该应用程序,但没有任何反应,因为原始应用程序进程从未真正完全关闭. 好吧,这件事发生在我们所有人身上,不 ...

  4. C/C++:Windows编程—创建进程、终止进程、枚举进程、枚举线程、枚举DLL

    创建进程的2种方式 1. 创建进程最简单的方法 UINT WINAPI WinExec(_In_ LPCSTR lpCmdLine, // 指向可执行文件_In_ UINT uCmdShow // 程 ...

  5. CreateProcess创建新的进程

    CreateProcess创建新的进程 标签:  attributes windows null security class 扩展 2010-03-16 10:37  3472人阅读  评论(0)  ...

  6. Linux进程的创建图文教程,进程的创建和终止(超详细)

    大多数系统的进程能够并发执行,它们可以动态创建和删除.因此,操作系统必须提供机制,用于创建进程和终止进程. 进程创建 进程在执行过程中可能创建多个新的进程.创建进程称为父进程,而新的进程称为子进程.每 ...

  7. VC进程的创建、终止

    众所周知,当用户在Windows操作系统中单击一个可执行文件时,系统就相当于产生了一个新进程.那么如何在一个程序产生一个新进程呢?Windows给广大程序员提供了很多的方法,一般来说,只需要调用一个A ...

  8. 进程和线程:进程的创建和终止

    进程的创建 进程创建的时机 系统初始化 一个进程执行了创建进程的系统调用 用户请求创建一个新进程 一个批处理作业初始化 进程分类 前台进程:和用户交互的进程. 守护进程:停留在后台处理的进程. (线程 ...

  9. CreateProcess创建一个隐藏进程

    delphi中使用CreateProcess创建一个隐藏进程 FillChar(StartUpInfo, SizeOf(StartUpInfo), 00); StartUpInfo.dwFlags : ...

最新文章

  1. fastJson结合Nutz.Mapl的进阶应用
  2. 有BUG!!!慎用default文本
  3. childnodes 兼容性问题
  4. Andorid学习笔记(ADT)-LogCat日志调试工具
  5. SQLSERVER对数据表进行分区
  6. 软件设计心情笔记(一)目的与手段都很重要
  7. php上传完没进度条_php使用APC实现实时上传进度条功能
  8. mysql 队列表设计_mysql主从同步操作,及队列设计
  9. install intel c/c++ compiler
  10. Python输入输出详解
  11. zipf定律,二八定律,流行度,点击率均可使用
  12. js动态添加HTML css失效,JS动态添加元素和设置其样式问题
  13. 国际标准化比率 INR
  14. zabbix 4.2.3 server.conf
  15. ubantu下QT连接数据库mysql
  16. 马云关于计算机名言,49句关于马云的名言
  17. 索引的作用和为什么要创建索引
  18. 【初识C语言】如何写出第一个C语言代码
  19. 程序猿面试题:为什么曹操能号令诸侯?
  20. DVWA的安装与配置教程+文件

热门文章

  1. 我的世界java启动程下载_我的世界java启动器下载
  2. 移动硬盘分区(以500G为例)
  3. python获取二进制文件流,压缩并下载
  4. [BZOJ 3864][HDU 4899]Hero meet devil(DP套DP)
  5. 2021年危险化学品经营单位主要负责人最新解析及危险化学品经营单位主要负责人模拟考试
  6. 还不会 Vue3 ?一篇笔记带你快速入门
  7. 基于iOS平台的OCR识别技术的分析与研究
  8. NAND Flash和 NOR Flash的区别
  9. Human Resource Machine 乘法研讨会
  10. 小程序和公众号相互跳转