我怎样才能让我的GUI应用程序运行在Windows启动时,将不会启动explorer.exe修改后的Windows框。
我有一个应用程序需要运行在专用的PC上,用于生成Digital Signage
内容。 这是生成公告和各种幻灯片内容的软件types,您可以在大型组织的等离子/液晶显示屏上看到这些内容。
我曾经与几个不同的内容pipe理软件供应商合作过,他们都是基本上build立一个Windows应用程序,然后从窗口中删除东西,以防止出现任何types的popup窗口等。我正在处理的供应商之一现在,Windows已被修改,以便explorer.exe
不启动。
我们程序的启动function运行使用启动文件夹中的链接。 我发现,因为explorer.exe
没有运行,我的应用程序也没有。
当电脑启动时,它会自动启动数字标牌应用程序的运行模式,开始显示可编程内容。 您可以按CTRL – ALT – DELETE并杀死他们的程序,然后从taskmanager
启动explorer.exe
。 大约一秒左右…我看到我的申请开始。
所以,我的问题是 – 我怎样才能让我的应用程序加载在一个Windows框不会启动explorer.exe
。 任何人都知道,如果说使用运行文件夹中的registry项即使没有资源pipe理器工作? 有没有其他的方式来启动程序运行?
我在接受的答案中实现了这个方法。 这里是我发现有用的链接。 我从来没有尝试过registry键的方法。 如果有人确认它会执行w / o explorer.exe
加载,请留下评论。
将您的应用程序转换为服务并将其设置为自动启动。 另外,还有一些工具可以在线运行一个任意的exe作为服务。 自己写一个很简单。
如果您的应用程序需要与桌面交互并创建UI,则需要您的服务才能在适当的桌面上启动该exe。 为此,可以使用WTSEnumerateSessions查找交互式用户会话,WTSQueryUserToken获取其令牌,然后使用CreateProcessAsUser以该用户的身份在正确的桌面上启动应用程序。
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
有一个名为“Userinit”的字符串,而<HKLM|HKCU>\Software\Microsoft\Windows\CurrentVersion\Run
是通常放置东西的地方,它支持多个逗号分隔值。
如果你想进入无证的土地,注册表中有一百万个地方在启动,从Sysinternals启动Autoruns,同时使用RegMon / ProcessMonitor进行监控
你可以尝试修改
[HKEY_CLASSES_ROOT\Folder\shell]
将默认值设置为可执行文件的路径/名称
这是危险的 ..如果你搞砸了,你可能会有很大的问题让系统工作..最好尝试/玩在虚拟机
你可以添加一个条目到注册表中
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
键?
我不确定是否explorer.exe负责启动这个领域的程序,或者Windows后端是负责任的,但值得一试。