C++ ShellExecute能否在活动会话中运行?

C++ ShellExecute能否在活动会话中运行?,c++,sessionid,shellexecute,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,因为我一直有特权问题 谢谢否。Shel

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

HWND win = GetActiveWindow();
ShellExecute(win,L"open",L"calc.exe",L"",L"", SW_SHOWNORMAL );
calc.exe进程在会话0中启动,因此我无法看到它。有没有办法将其设置为在“活动用户”窗口中启动?我不想使用CreateProcess,因为我一直有特权问题


谢谢

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

你所说的“会话”是什么意思?我编辑了这个问题。但基本上我可以从任务管理器中看到calc.exe进程正在会话0中运行(因此无法看到它)。我希望它在活动用户窗口中运行,我担心有人会这么说。干杯