首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何做一个服务程序使其在用户没有登陆操作系统桌面时也可运行一个外部程序?

2013-06-26 
怎么做一个服务程序使其在用户没有登陆操作系统桌面时也可运行一个外部程序???例如像WIN2000,WIN2003操作

怎么做一个服务程序使其在用户没有登陆操作系统桌面时也可运行一个外部程序???


例如像WIN2000,WIN2003操作系统,在启动电脑时,会出现要输入密码才能登陆到桌面,其实这时候系统已启动,只是未登陆到桌面而已。

我想要做的是,我有一个现成的带界面显示的“AppTest.exe”程序,然后又做了一个服务程序“ServerApp.exe”,
在“ServerApp.exe”里有调用运行“AppTest.exe”程序。

目前我可以做到通过服务程序在未登陆桌面时运行外部不带界面的程序,可是我怎么运行一个带界面的外部程序呢?


[解决办法]
既然没有用户登录,你的界面显示在哪里呢?你可以使用LogonUser、CreateProcessAsUser加载你的界面程序,前提是你知道某些用户的用户名、密码。

[解决办法]
你也可以使用CreateProcessWithLogonW,这个更简单,是LogonUser、CreateProcessAsUser的二合一。

例子见:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682431%28v=vs.85%29.aspx

[解决办法]
在没有用户登录时,系统中只存在一个可视化桌面,即winlogon桌面(windows欢迎界面)。然而这个桌面只允许一个进程在它上面创建,即winlogon.exe,因此你无法创建其他可视化进程。
[解决办法]
界面程序必须运行在登录用户的桌面里
你需要的是一个自动登录?

热点排行