https://www.cnblogs.com/fancing/p/6477918.html

  1. #include <windows.h>
  2. #include <tchar.h>
  3. #include <stdio.h>
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7. TCHAR szCommandLine[] = TEXT("NOTEPAD");//或者WCHAR
  8. //LPWSTR szCommandLine = TEXT("NOTEPAD");//错误
  9. //STARTUPINFO si = { sizeof(si) };
  10. STARTUPINFO si;
  11. PROCESS_INFORMATION pi;
  12. ZeroMemory(&si, sizeof(si));
  13. si.cb = sizeof(si);
  14. ZeroMemory(&pi, sizeof(pi));
  15.  
  16. si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效
  17. si.wShowWindow = TRUE; // 此成员设为TRUE的话则显示新建进程的主窗口,
  18. // 为FALSE的话则不显示
  19. BOOL bRet = ::CreateProcess (
  20. NULL, // 不在此指定可执行文件的文件名
  21. szCommandLine, // 命令行参数
  22. NULL, // 默认进程安全性
  23. NULL, // 默认线程安全性
  24. FALSE, // 指定当前进程内的句柄不可以被子进程继承
  25. CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口
  26. NULL, // 使用本进程的环境变量
  27. NULL, // 使用本进程的驱动器和目录
  28. &si,
  29. &pi);
  30.  
  31. if(bRet)
  32. {
  33. // 既然我们不使用两个句柄,最好是立刻将它们关闭
  34. ::CloseHandle (pi.hThread);
  35. ::CloseHandle (pi.hProcess);
  36.  
  37. }
  38. return ;
  39. }

VC++ 使用CreateProcess创建新进程的更多相关文章

  1. Win32 API编程:使用CreateProcess创建新进程

    #include <windows.h> #include <tchar.h> #include <stdio.h> int main(int argc, char ...

  2. Linux内核分析— —创建新进程的过程

    分析Linux内核创建一个新进程的过程 实验过程 要求:使用gdb跟踪分析一个fork系统调用内核处理函数sys_clone ,验证对Linux系统创建一个新进程的理解,推荐在实验楼Linux虚拟机环 ...

  3. linux进程学习-创建新进程

    init进程将系统启动后,init将成为此后所有进程的祖先,此后的进程都是直接或间接从init进程“复制”而来.完成该“复制”功能的函数有fork()和clone()等. 一个进程(父进程)调用for ...

  4. fork函数创建新进程过程分析

    gdb调试执行流程,首先设置断点b sys_clone,当在shell下输入fork命令后,系统执行至断点,接下来按步执行: 判断是否被跟踪 判断是否被创建为轻量级进程(vfork) 判断父进程是否被 ...

  5. 创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)

    CreateProcessAsUser 怎么会还需要密码呢~~~ 先WTSGetActiveConsoleSessionId 得到当前的处理激活状态的SessionId OpenProcessToke ...

  6. Linux内核分析-创建新进程的过程

    分析Linux内核创建一个新进程的过程 task_struct结构体分析 struct task_struct{ volatile long state; //进程的状态 unsigned long ...

  7. 使用CreateProcess创建新的process 并返回process运行结束返回值

    转自:http://blog.csdn.net/zgl7903/article/details/5975284 转载这篇主要是记住:获得create的新进程运行结束时的返回值的方法 如下:   #in ...

  8. Go:创建新进程(os.StartProcess源码解读)

    关于如何使用go语言实现新进程的创建和进程间通信,我在网上找了不少的资料,但是始终未能发现让自己满意的答案,因此我打算自己来分析这部分源代码,然后善加利用,并且分享给大家,期望大家能从中获得启发. 首 ...

  9. Delphi 使用CreateProcess创建进程并弹出进程PID值 (转)

    var  ExeName:PChar;  StartupInfo:TStartupInfo;  ProcessInfo:TProcessInformation;begin  FillChar(Proc ...

随机推荐

  1. LeetCode104.二叉树最大深度

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], ...

  2. Mongodb $in $or 性能比较

      MongoDB docs have the answer: "When using $or with <expressions> that are equality chec ...

  3. CentOS中无法使用setup命令 -bash:setup: command not found

    出现这个问题是因为 Minimal 安装模式 所以并没有安装 setuptool 软件. 解决办法为: 使用yum 源直接下载安装 或者 去下载 setuptool 软件包安装 #安装setuptoo ...

  4. PLSQL乱码

    PLSQL乱码 博客分类: oracle oracleplsql乱码  问题:PL/SQL插入和更新乱码. 解决乱码问题需要关注的三点: 1. Oracle数据库内部的字符集 2. Oracle客户端 ...

  5. caffe中的caffemodel参数提取方法

    需要的文件为:deploy.prototxt caffemodel net = caffe.Net(deploy.txt,caffe_model,caffe.TEST)具体代码: import caf ...

  6. python ---多线程thread

    thread 在数据预处理的时候用处不大,因为有GIL 锁 查看thread信息 import threading print(threading.current_thread()) print(th ...

  7. PID控制動手玩玩看

    PID控制動手玩玩看 PID三個參數到底該怎麼調才好,真的是一門藝術. 雖然在Marlin韌體內有提供自動測量的功能,但是測得的結果,不見得能令人滿意,還是需要調整.可是到底該怎麼調整?從哪個參數開始 ...

  8. C-Cow Sorting (置换群, 数学)

    Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow has a uniqu ...

  9. uvalive 3276 The Great Wall Game

    题意: 一个n * n的棋盘上放着n个棋子,现在要求把这n个棋子用最少的步数移到同一条直线上,即同一列同一行或者同一对角线(两条).输出最少的步数(只能往四个方向移动,即正东,正西,正南,正北). 思 ...

  10. FTL 数字有逗号

    Long i=100000000l; Map model=new Map(); model.put("t",i); 在freemarker中显示为100,000,000 想按原样输 ...