Windows开发-CreateProcess
来源:互联网 发布:为什么手机登不上淘宝 编辑:程序博客网 时间:2024/06/06 02:12
别人都在看Coscos我还在看Windows,加油
BOOL CreateProcess
(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes。
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
CreateProcess函数会在当前线程中创建一个进程内核对象,然后将可执行文件和相关代码、数据加载到对应的地址,然后系统为这个进程创建一个主线程内核对象。lpApplicationName为可执行文件的文件名,注意其为不可写的,所以不能传堆数据给它。
但是我在vc6.0上面可以这个
- CreateProcess(NULL,TEXT("NOTEPAD"),NULL,NULL,
- FALSE,0,NULL,NULL,&si,&pi) ; 没有报错typedef /* [string] */ WCHAR __RPC_FAR *LPWSTR; 只是char *的应该的。
lpApplicationName为空的时候,会从lpCommandLine解析出可执行文件的文件名,lpCommandLine=“x.exe. xxxxx” 的形式, TEXT("NOTEPAD 123") ;则会执行123.txt 并且弹出NOTEPAD
可执行文件的名称可以不带后缀,程序搜索可执行文件的顺序为
(1)主调进程.exe文件所在的目录
(2)主调进程的当前目录 //exe的上一级目录里面
(3)windows系统目录,即GetSystemDirectory返回的System32子文件夹
(4)windows目录
(5)PATH环境变量中列出的目录
lpApplicationName不为空的时候,lpApplicationName不能忽略后缀名,且其只会在当前目录查找可执行文件。由于会启动新的主进程和主线程,所有需要lpProcessAttributes和lpThreadAttributes来指定对应的安全描述符。
bInheritHandles表示此子进程是否拥有父进程的句柄表等。
dwCreationFlags表示新进程的一些创建方式,子进程的优先级等。
lpEnvironment 指向一个新进程的环境块。如果此参数为空,新进程使用调用进程的环境。
lpStartupInfo: 大多数应用程序都希望生成的应用程序只是使用默认值,最起码要全部初始化为0,再把cb成员设为此结构体的大小,如果没有清0,则新进程可能创建失败.主要是描述子进程窗口的显示的问题。
lpProcessInformation 这个一看就明白,无非是保存进程和线程的ID,但是注意,用完之后要释放。
- Windows开发-CreateProcess
- Windows进程线程函数 - CreateProcess
- Windows中CreateProcess函数用法
- windows程序设计——CreateProcess()
- windows - 进程 - CreateProcess函数详解
- 重读Windows核心编程--CreateProcess
- Windows创建进程winAPI-CreateProcess
- windows核心编程-CreateProcess详解
- Windows下创建进程-CreateProcess()
- CreateProcess
- CreateProcess
- createprocess
- CreateProcess
- CreateProcess
- CreateProcess
- CreateProcess
- CreateProcess
- createprocess
- MFC问题集锦
- 甘特图
- KVO
- Minimum Depth of Binary Tree
- Android source build/envsetup.sh学习笔记
- Windows开发-CreateProcess
- Cocos2dx 竖屏中文输入存在问题
- TO_DATE取天时误区,其默认为当天的临晨
- 数据结构包括哪几种基本结构,各有什么特点
- UVA 10739 String to Palindrome
- 黑马程序员_基于TCP协议的Socket编程
- TCP/IP、Http、Socket的区别
- commons-lang-*.*.jar 包常用方法集锦
- Html5 本地文件读取 API 研究使用过程中的意外发现 - MDN