原创 CreateProcess函数

2011-2-22 21:58 1473 3 3 分类: 工程师职场

函数原型:

  BOOL CreateProcess

  (

        LPCTSTR lpApplicationName,   //可执行文件的文件名,如"C:\\Windows\\system32\\notepad.exe"

        LPTSTR lpCommandLine,     // 指定传递给可执行文件的参数,如"WORDPAD C:\\Windows\\System32\\ReadMe.txt"

        LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全属性,一般默认为NULL

        LPSECURITY_ATTRIBUTES lpThreadAttributes,   //线程安全属性,一般默认为NULL

        BOOL bInheritHandles,         //指定当前进程的可继承句柄是否可被新进程继承

        DWORD dwCreationFlags,      //指定新进程的优先级及其创建的标志

        LPVOID lpEnvironment,      //指定新进程使用的环境变量

        LPCTSTR lpCurrentDirectory,    // 新进程使用的当前目录

        LPSTARTUPINFO lpStartupInfo,    // 指定新进程主窗口 位置,大小等

        LPPROCESS_INFORMATION lpProcessInformation    //返回新进程的标志信息,如ID,句柄等

  );

 

//vc6.0
#include <windows.h>
#include <stdio.h>
#include <tchar.h>

int main()
{
TCHAR szComanmd[] = TEXT("WORDPAD C:\\Windows\\System32\\ReadMe.txt");/*\\ \\ \\*/
STARTUPINFO si = {sizeof(si)}; 
PROCESS_INFORMATION pi;
int bRet = ::CreateProcess(TEXT("C:\\Windows\\system32\\notepad.exe"),szComanmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);

return 0;
}


其中:

      STARTUPINFO  是记录新进程的一些窗口信息,具体的数据结构,请参看http://blog.sina.com.cn/s/blog_5cec38f30100balh.html

       PROCESS_INFORMATION  是记录新进程的标志信息,如ID,句柄等,具体定义如下:

     typedef struct _PROCESS_INFORMATION {           HANDLE hProcess;    // 进程句柄           HANDLE hThread;    // 线程句柄           DWORD dwProcessId;      // 进程ID           DWORD dwThreadId;      // 线程ID     } PROCESS_INFORMATION,  *LPPROCESS_INFORMATION;

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条