C语言中怎么用CreateProcess函数创建独立的进程

avatar
作者
筋斗云
阅读量:0

在C语言中,可以使用CreateProcess函数创建独立的进程。CreateProcess函数的原型如下:

BOOL CreateProcess(   LPCWSTR               lpApplicationName,   LPWSTR                lpCommandLine,   LPSECURITY_ATTRIBUTES lpProcessAttributes,   LPSECURITY_ATTRIBUTES lpThreadAttributes,   BOOL                  bInheritHandles,   DWORD                 dwCreationFlags,   LPVOID                lpEnvironment,   LPCWSTR               lpCurrentDirectory,   LPSTARTUPINFOW        lpStartupInfo,   LPPROCESS_INFORMATION lpProcessInformation ); 

下面是一个示例程序,演示如何使用CreateProcess函数创建独立的进程:

#include <windows.h> #include <tchar.h>  int _tmain(int argc, _TCHAR* argv[]) {     STARTUPINFO si;     PROCESS_INFORMATION pi;      ZeroMemory(&si, sizeof(si));     si.cb = sizeof(si);     ZeroMemory(&pi, sizeof(pi));      // 创建新进程     if (!CreateProcess(NULL,   // 不指定应用程序的名称         _T("C:\\Windows\\System32\\calc.exe"),  // 要执行的命令         NULL,   // 默认进程的安全性         NULL,   // 默认线程的安全性         FALSE,  // 不继承句柄         0,      // 默认标志         NULL,   // 默认环境变量         NULL,   // 默认当前目录         &si,         &pi))     {         printf("CreateProcess failed (%d).\n", GetLastError());         return 1;     }      // 等待新进程结束     WaitForSingleObject(pi.hProcess, INFINITE);      // 关闭进程和线程的句柄     CloseHandle(pi.hProcess);     CloseHandle(pi.hThread);      return 0; } 

在上面的示例程序中,通过调用CreateProcess函数创建了一个新的进程,指定要执行的命令为"calc.exe"。然后,使用WaitForSingleObject函数等待新进程结束,最后关闭进程和线程的句柄。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!