zoukankan      html  css  js  c++  java
  • 创建进程

     1 // 04 创建一个进程.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <windows.h>
     6 #include<stdio.h>
     7 BOOL CreateChildProcess(LPWSTR lpPath, BOOL bWait);
     8 int _tmain(int argc, _TCHAR* argv[])
     9 {
    10     PROCESS_INFORMATION pi = {};
    11     STARTUPINFO  si = {};
    12     CreateProcess(
    13         TEXT("E:\软件安装\Bin\QQ.exe"),       //exe文件路径
    14         NULL,      //lpCommandLine传递给新进程的命令行字符串,此参数类型为PTSTR,意味着在执行过程中可能修改传入的值
    15         NULL,      //lpProcessAttributes进程安全属性
    16         NULL,      //线程安全属性
    17         FALSE,     //表示新创建的子进程是否继承父进程的所有句柄,是的话子进程就可以访问父进程创建的所有句柄
    18         NULL,      //子进程的创建方式
    19         NULL,      //指向保存有进程环境的当前目录
    20         NULL,      //新创建子进程的当前目录
    21         &si,       //不能省略,指向子进程创建配置结构体,此结构体可以详细控制子进程的各种创建状态
    22         &pi);      //不能省略,返回进程创建的详细信息
    23     return 0;
    24 }
    25 BOOL CreateChildProcess(LPWSTR lpPath, BOOL bWait){
    26     STARTUPINFO  si = { 0 };//新进程窗口特性
    27     PROCESS_INFORMATION pi = { 0 };//新进程信息结构体
    28     si.cb = sizeof(si);
    29     //1.创建子进程,并判断是否成功
    30     if (!CreateProcess(lpPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi));
    31     return FALSE;
    32     //是否需要等待进程执行结束
    33     if (bWait)
    34         WaitForSingleObject(pi.hProcess, INFINITE);
    35     //关闭进程句柄和线程句柄
    36     CloseHandle(pi.hProcess);
    37     CloseHandle(pi.hThread);
    38     return true;
    39 
    40 }
    让数据变得更安全!
  • 相关阅读:
    角色扮演游戏引擎的设计原理
    游戏服务器架构
    小谈网络游戏同步
    What is the single most influential book every programmer should read?
    Research Scientists and Engineers
    关于为什么不推荐使用用户定义表类型的说明
    程序员必须遵守的编程原则
    CacheStrategy缓存
    正能量
    MEF 和 MAF
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5278505.html
Copyright © 2011-2022 走看看