如何在已修改为不运行资源管理器的Windows系统上启动时运行应用程序

时间:2009-07-13 20:26:03

标签: windows startup winlogon

概要

如何在未启动explorer.exe的已修改Windows框上的Windows启动时运行我的GUI应用程序。

  • 程序中设置链接 - > 启动文件夹未执行。
  • 我的应用程序是图形化的,所以我不能只修改应用程序作为服务运行。

背景

我的应用程序需要在专用PC上运行,该PC用于生成Digital Signage的内容。这是一种软件类型,可以生成公告和各种幻灯片内容,您可以在大型组织的等离子/ LCD屏幕上看到这些内容。

我有几个不同的内容管理软件供应商的经验,他们基本上都构建了一个Windows应用程序,然后从窗口中删除东西,以防止出现任何类型的弹出窗口等。其中一个供应商我'现在正在处理,Windows已被修改,explorer.exe无法启动。

我们程序的启动运行功能使用了启动文件夹中的链接。我发现,因为explorer.exe没有运行,我的申请也没有。

当计算机启动时,它会自动启动进入数字标牌应用程序的运行模式,该应用程序开始显示可编程内容。您可以按 CTRL - ALT - DELETE 并终止他们的程序,然后从explorer.exe启动taskmanager。大约一秒左右......我看到我的申请开始了。

所以,我的问题是 - 如何在无法启动的explorer.exe Windows框上加载我的应用程序。任何人都知道如果在Run文件夹中使用注册表项即使在没有资源管理器的情况下也能正常工作?有没有其他方法可以让程序在启动时运行?


编辑:接受的答案实施说明

我在接受的答案中实施了这种方法。 这是我发现在实现它时有用的链接。我从未尝试过注册表项方法。如果有人确认无法explorer.exe加载执行,请发表评论。

4 个答案:

答案 0 :(得分:6)

将您的应用程序转换为服务并将其设置为自动启动。或者,有在线工具可以将任意exe作为服务运行。自己写一篇文章很简单。

如果您的应用程序需要与桌面交互并创建UI,则需要您的服务才能在适当的桌面上启动exe。为此,您可以使用WTSEnumerateSessions查找交互式用户会话,使用WTSQueryUserToken获取其令牌,然后使用CreateProcessAsUser在该用户的正确桌面上启动应用程序。

答案 1 :(得分:2)

<HKLM|HKCU>\Software\Microsoft\Windows\CurrentVersion\Run是放置内容的常用位置,但如果不够好HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon有一个名为“Userinit”的字符串,它确实支持多个逗号分隔值。

如果你想进入无证件的土地,注册表中有一百万个地方可以开始工作,在使用RegMon / ProcessMonitor进行监控的同时从Sysinternals启动Autoruns

答案 2 :(得分:0)

您可以尝试修改

[HKEY_CLASSES_ROOT\Folder\shell] 

将默认值设置为可执行文件的路径/名称

这是危险的 ..如果搞砸了,你可能会遇到很大的问题让系统正常运行..最好在虚拟机中试用/播放

答案 3 :(得分:0)

可以在注册表中添加一个条目

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

键?

我不确定explorer.exe是否负责启动此区域中的程序,或者Windows后端是否负责但是值得一试。