但后者的参数太复杂,谁能给个例子说说一下?详细一些最好。分多多

解决方案 »

  1.   

    shellExeCute  好像是这个吧,功能和CreateProcess差不多
    给你一个CreateProcess例子BOOL CreateProcess(
      LPCTSTR lpApplicationName,                 // name of executable module
      LPTSTR lpCommandLine,                      // command line string
      LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
      BOOL bInheritHandles,                      // handle inheritance option
      DWORD dwCreationFlags,                     // creation flags
      LPVOID lpEnvironment,                      // new environment block
      LPCTSTR lpCurrentDirectory,                // current directory name
      LPSTARTUPINFO lpStartupInfo,               // startup information
      LPPROCESS_INFORMATION lpProcessInformation // process information
    );第一个参数:要创建的新进程名 比如test.exe,大多数时候设置为NULL
    第二个参数:给新进程的命令行参数,大多数时候和进程名一起写着
    第三个参数:进程安全性描述符,大多数时候为NULL
    第四个参数:主线程安全性描述符,大多数时候为NULL
    第五个参数:进程句柄继承标志,一般设置为FALSE
    第六个参数:进程创建方式,值太多,详细请看MSDN,一般情况下窗传递0就OK了
    第七个参数:新进程将要使用的环境内存块,设置为NULL就OK
    第八个参数:设置新进程目录,如果为NULL,则和创建子进程的父进程同一个目录,一般设置为NULL,
    第九个参数:指向一个STARTUPINFO结构,一般使用默认值,等下例子里说名
    第10个参数:指向一个PROCESS_INFORMATION结构,新创建的进程成功后,一些信息将填充这个结构来返回例子
    PROCESS_INFORMATION ProcessInformation;
    STARTUPINFO si={sizeof(si)};//第9个参数,就这样初始化
    CreateProcess(NULL,"c:\\winnt\\system32\\notepad.exe test.txt",NULL,NULL,FALSE,0,NULL,NULL,&si,&ProcessInformation);