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

在已修改为不运行资源管理器的Windows系统上,如何在启动时运行应用程序 总结,windows,startup,winlogon,Windows,Startup,Winlogon,如何使我的GUI应用程序在windows启动时在一个修改过的不会启动explorer.exe的windows框上运行 在程序->启动文件夹中放置链接不会执行 我的应用程序是图形化的,所以我不能仅仅修改应用程序以作为服务运行 背景 我有一个应用程序需要在专用PC上运行,用于生成数字看板的内容。它是一种生成公告和各种幻灯片内容的软件,您可以在大型组织的Plasma/LCD屏幕上看到这些内容 我与几家不同的内容管理软件供应商有过合作经验,他们基本上都是构建一个windows应用程序,然后从wind

如何使我的GUI应用程序在windows启动时在一个修改过的不会启动explorer.exe的windows框上运行

  • 程序->启动文件夹中放置链接不会执行
  • 我的应用程序是图形化的,所以我不能仅仅修改应用程序以作为服务运行
背景 我有一个应用程序需要在专用PC上运行,用于生成
数字看板的内容。它是一种生成公告和各种幻灯片内容的软件,您可以在大型组织的Plasma/LCD屏幕上看到这些内容

我与几家不同的内容管理软件供应商有过合作经验,他们基本上都是构建一个windows应用程序,然后从windows中删除一些东西,以防止出现任何弹出窗口等。我现在正在与其中一家供应商打交道,windows已被修改,以致
explorer.exe
无法启动

我们程序的启动时运行功能利用启动文件夹中的链接。我发现,由于
explorer.exe
没有运行,我的应用程序也没有运行

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

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


编辑:接受答案实施说明 我在公认的答案中实施了该方法。 下面是我发现在实现它时有用的链接。我从未尝试过注册表项方法。如果有人确认它将执行w/o
explorer.exe
加载,请留下评论


将应用程序转换为服务,并将其设置为自动启动。或者,也可以使用联机工具将任意exe作为服务运行。自己写一本很简单


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

您可以尝试修改

[HKEY_CLASSES_ROOT\Folder\shell] 
将默认值设置为可执行文件的路径/名称

这很危险
.. 如果你把它搞砸了,你可能会遇到让系统正常工作的巨大问题。。在虚拟机中尝试/玩的最佳方法你能在注册表的

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
钥匙

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

\Software\Microsoft\Windows\CurrentVersion\Run
是放置东西的常用位置,但如果这还不够好,则
HKLM\SOFTWARE\Microsoft\windowsnt\CurrentVersion\Winlogon
有一个名为“Userinit”的字符串,它确实支持多个逗号分隔的值


如果您想进入未记录的领域,注册表中有一百万个地方是开始工作的地方,请在使用RegMon/ProcessMonitor进行监视时从sysinternal启动自动运行

这对我来说似乎是一个更合适的ServerFault问题。@Daniel我不同意。解决方案将在源代码中实现。例如,Michael在下面的回答中列出了几个需要调用才能实现的Windows API方法。调整了我的回答,详细说明了如何从服务为特定用户启动GUI应用。这是我的问题。。。我必须依靠客户在他的环境中测试我的软件。目前无法在家里复制他的设置。所以,实验是痛苦的。