ShellExecute可以在活动会话中运行吗?

时间:2012-12-05 11:31:43

标签: c++ sessionid shellexecute

我有一个命令,当我的程序中发生某些事情时,我需要由cmd.exe运行。假设命令是“calc.exe”。当我使用ShellExecute时:

HWND win = GetActiveWindow();
ShellExecute(win,L"open",L"calc.exe",L"",L"", SW_SHOWNORMAL );

calc.exe进程在会话0中启动,所以我看不到它。有没有办法将其设置为在活动用户窗口中启动?我不想使用CreateProcess,因为我一直有使用它的权限问题

由于

1 个答案:

答案 0 :(得分:0)

没有。 ShellExecute无法在另一个会话中运行程序。您需要使用CreateProcessAsUser。这里有很多问题讨论如何做到这一点。