我有一个命令,当我的程序中发生某些事情时,我需要由cmd.exe运行。假设命令是“calc.exe”。当我使用ShellExecute时:
HWND win = GetActiveWindow();
ShellExecute(win,L"open",L"calc.exe",L"",L"", SW_SHOWNORMAL );
calc.exe进程在会话0中启动,所以我看不到它。有没有办法将其设置为在活动用户窗口中启动?我不想使用CreateProcess,因为我一直有使用它的权限问题
由于
答案 0 :(得分:0)
没有。 ShellExecute
无法在另一个会话中运行程序。您需要使用CreateProcessAsUser
。这里有很多问题讨论如何做到这一点。