创建互动流程

【勇芳软件工作室】汉化HomePreviousNext

以下代码片段显示了Win32服务进程如何在CreateProcess调用中使用STARTUPINFO结构来创建可访问用户的交互式窗口站和默认桌面的进程。非交互式Win32服务可以使用此技术与登录用户进行交互。然后,新进程可以使用命名管道或其他一些进程间通信方式与Win32服务进行通信。

要创建一个交互过程,如本示例所示,Win32服务必须登录到LocalSystem帐户。

#include < windows.h >

STARTUPINFO si;

PROCESS_INFORMATION ProcessInformation;

si.cb = sizeof(STARTUPINFO);

si.lpReserved = NULL;

si.lpTitle = NULL;

si.lpDesktop = "WinSta0\\Default";

si.dwX = si.dwY = si.dwXSize = si.dwYSize = 0L;

si.dwFlags = 0;;

si.wShowWindow = SW_SHOW;

si.lpReserved2 = NULL;

si.cbReserved2 = 0;

if(CreateProcess(NULL,lpszCmdLine,NULL,NULL,FALSE,

0,NULL,NULL,& si,& ProcessInformation)){

CloseHandle(ProcessInformation.hProcess);

CloseHandle(ProcessInformation.hThread);

}