CreateProcess函数

函数原型:

  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,句柄等

  );

下面是一个打开记事本的例程:

 

1 #include<windows.h>
2 #include <iostream>
3  using namespace std;
4  int _tmain(int argc, _TCHAR* argv[])
5 {
6 TCHAR szComanmd[] = TEXT("WORDPAD C:\\Windows\\System32\\ReadMe.txt");
7 STARTUPINFO si = {sizeof(si)};
8 PROCESS_INFORMATION pi;
9 bool bRet = ::CreateProcess(TEXT("C:\\Windows\\system32\\notepad.exe"),\
10 szComanmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
11 return 0;
12 }
13
14  

 

其中:

      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;

   

posted on 2010-04-27 22:49  joyjoy  阅读(153)  评论(0)    收藏  举报

导航