我的系统有2个帐户(USER和ADMIN)和一个服务(Service.exe)在LocalSystem下运行。 用户登录到USER帐户后,LocalService可以以ADMIN用户的身份启动进程(CreateProcessAsUser(...))。CreateProcessAsUser()不显示运行进程的CreateWindow [C#]
服务运行的进程(Tool.exe)是一个传统的C++应用程序,它执行作业并使用CreateWindow(...)向用户显示信息,但当通过服务启动它时,窗口不会显示...
当通过服务创造的过程中,我第一次加载配置文件ADMIN用户的&环境,以便正确的上下文中使用... (仍然希望窗口将显示到用户)
现在,最初我以为这会导致一个问题,因为管理员正在运行的过程,为什么CreateWindow(...)输出在USER桌面,所以我尝试通过一个简单的命令行test.exe应用程序,当以ADMIN的身份启动时,命令提示符窗口出现 - 那么为什么它能正常工作,因为CreateWindow(...)无法正确显示?
有关如何获取在ADMIN下运行以显示在USER登录会话中的状态(使用Tool.exe中的CreateWindow)的任何线索?
我可以使用环境弄好了,我想下面想这可能工作,但没有:
startInfo.lpDesktop = @"WinSta0\Default";
startInfo.dwFlags = STARTF_USESHOWWINDOW;
startInfo.wShowWindow = SW_SHOW;
的窗口创建为(以Tool.exe)如下:
HWND hwnd = CreateWindow
(
"Tool",
"Tool WINDOW",
WS_POPUP | WS_VISIBLE,
0,0,uWidth,uHeight,
NULL,
NULL,
hInstance,
Text
);
lpDesktop是否错误(不完全确定这是如何工作的)?
我知道这听起来有多疯狂 - 我只是不想将另一个ToolDisplay.exe作为USER与Tool.exe进行通信作为ADMIN作为显示器,当Tool.exe用于处理所有内容时 - 所以检查,看看是否有没有处理一些这方面的好方法...
任何帮助将不胜感激...... 谢谢,
[简体问:]
我的系统有2帐户(USER和ADMIN),用户始终以USER身份登录,但在某个特定时间进程(Tool.exe)处于登录状态在ADMIN帐户(通过使用CreateProcessAsUser(...)的LocalSystem服务)启动,几乎一切正常,除了过程(Tool.exe)应该使用CreateWindow(...)向用户显示状态这一事实外, 。
当Tool.exe正在运行(如ADMIN)并且用户以USER身份登录时,该窗口未显示(显然)... 有没有办法显示在ADMIN下运行的Tool.exe窗口以USER身份登录的用户?
任何帮助将不胜感激...... 谢谢,
简化您的问题。这没有任何意义。 – 2009-09-20 04:28:14