我希望在Windows用户登录后和Windows桌面出现之前加载我的C#应用程序。目前我将我的应用程序启动路径添加到注册表运行键。它正确加载我的应用程序,但Windows窗口桌面出现[2秒]然后我的应用程序运行
注意:
我的应用程序使用winapi创建单独的桌面,而运行它的应用程序暂时隐藏桌面。
答案 0 :(得分:3)
这真的不可能做到。用户登录后,Windows很难让桌面升级,资源管理器也能响应。这对用户来说是最重要的。
你的目标可能很高尚,但它们与用户想要的东西不一致。所以一般来说,它们与Windows的工作方式(特别是Win-7)不一致。
如果您的软件需要提前运行而不需要与用户交互,那么他们就可以使用服务了。重要的是要注意,在Vista和更高版本的Windows系统中,服务无法与用户交互 - 例如他们不能拥有自己的图形用户界面。具有UI的服务本身就不安全。
对软件进行分区的一种方法是将一些内容放入服务中,并在其上面设置思考UI层。 COM和本地RPC是服务和UI层之间通信的不错选择。
请注意,您需要在此处进行操作以防止组件降低启动速度。性能不佳的应用程序是引导路径中最大的问题之一。您可以使用Windows Performance Toolkit
进行研究答案 1 :(得分:0)
我认为这是有点,但你真的需要做很多额外的工作。您可以做的是用您自己的代码替换Windows Shell,但此时您将独自负责用户与之交互的UI。
如果你的代码不是“恰到好处”,你可能会得到一个无法使用的Windows安装,我不确定你的用户是否会对此感激不尽。
另请注意,您可能会直观地希望在Windows计算机上可以使用这些功能,这些功能是您无法再访问的shell的一部分。有关详细信息,请尝试http://en.wikipedia.org/wiki/Windows_shell_replacement作为起点。
<强>附录强>:
我自己只有最模糊的知识才能知道实际涉及到什么才能实现这一目标,但http://dustyant.com/articles/deeshell/似乎是对基础知识的一个不错的解释。再次...... 这里是龙确保你在虚拟机或其它东西中执行此操作,以免最终填满主Windows安装。
简单地说'Shell Replacement'意味着什么:登录后,Windows启动了一个名为'explorer'的应用程序(不确定这是否适用于Vista / Win 7 ......我有一个模糊的回忆它还有一点点最近涉及),它基本上绘制了桌面,任务栏等...有可能告诉Windows启动一个不同的应用程序而不是默认的图形shell。此时,您可以控制Windows的主UI ...这意味着您负责Windows通常在shell中执行的所有操作 ......为您提供了很多控制和灵活性,可能还有很多令人头疼的问题。