zoukankan      html  css  js  c++  java
  • windows api学习笔记终止其他进程

    #include //系统会自动连接到指定的库文件lib
    #include //std  io  标准输入输出接口
    #include 
    using namespace std;
    
    int main()
    {
    	char szCommandLine[] = "cmd";
    	STARTUPINFO si = {sizeof(si)};//
    	PROCESS_INFORMATION pi;
    	si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成员有效
    	si.wShowWindow = TRUE;//显示新进程的主窗口
    	BOOL bRet = ::CreateProcess(
    		NULL,//不在此指定可执行文件的文件名
    		szCommandLine,//命令行参数,包含执行什么可执行文件
    		NULL,//默认进程安全性
    		NULL,//默认线程安全性
    		FALSE,//当前进程内的句柄不可以被子进程继承
    		CREATE_NEW_CONSOLE,
    		NULL,//使用本进程的环境变量
    		NULL,//使用本进程的驱动器和目录
    		&si,//新进程中主窗口的位置,大小和标准句柄
    		&pi //返回新进程的信息,如ID号句柄等
    		);
    	if(bRet)
    	{
    		printf("新进程的ID号:%d\n",pi.dwProcessId);
    		printf("新进程的主线程的ID号:%d\n",pi.dwThreadId);
    		::Sleep(6000);
    
    		//以所有权限打开目标进程,第二个参数指定返回的句柄是否可以被继承
    		//HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pi.dwProcessId);
    		//if(hProcess != NULL)
    		//{
    			BOOL bRet2 = ::TerminateProcess(pi.hProcess,0);//第二个参数是exit code
    		//}
    		//不使用两个返回的句柄最好把他关闭掉,要不然占有系统资源
    		::CloseHandle(pi.hThread);
    		::CloseHandle(pi.hProcess);
    	}
    	char a;
    	cin>>a;
    	return 0;
    }
    

    OpenProcess函数可以打开系统当前的进程

    获取当前进程的句柄

  • 相关阅读:
    使用JAVA API 解析ORC File
    spark Graph 的PregelAPI 理解和使用
    流程图引擎
    JMX
    Spring走向注解驱动编程
    java@ 注解原理与使用
    Maven打包SpringBoot
    Java根据实体快速生成对象
    VBA基础出发
    “嗝嗝老师”
  • 原文地址:https://www.cnblogs.com/liulun/p/1663861.html
Copyright © 2011-2022 走看看