以前,有一个很好的问题/答案:“在Windows 7中从Windows Service启动交互过程”。它指的是这篇文章:1。
我的问题是相同的,但我使用的是Windows 10。
我正在尝试执行该文章中的处方1.A(服务正在LocalSystem帐户上下文中运行,并尝试以当前以交互方式登录的用户启动应用程序。)
我的代码:
这时我希望会出现一个命令外壳窗口,但是没有。
为什么不呢?
std::wstring commandLine = L"C:\\Windows\\System32\\Cmd.exe";
STARTUPINFO startupInfo =
{
sizeof(STARTUPINFO),
NULL,
L"WinSta0"
};
PROCESS_INFORMATION processInformation;
if (!CreateProcessAsUserW(
AdminToken,
NULL,
(PWSTR)commandLine.c_str(),
NULL, // process attributes
NULL, // thread attributes
FALSE, // bInheritHandles
(NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE),
NULL, // environment
L"C:\\", // current directory
&startupInfo,
&processInformation))
{ ... snip ... }