4

如何强制安装一个添加了安装项目的 Windows 应用程序,以便每次有人登录 Windows 时它都会启动?

编辑: 我知道注册表设置,但具体来说,我正在寻找一种允许安装程序设置注册表值的解决方案。

4

5 回答 5

7

打开您的注册表并找到密钥

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run].

对于您要启动的每个程序,使用描述性名称自动创建一个新的字符串值,并将字符串的值设置为程序可执行文件。

例如,要自动启动记事本,添加一个新条目

"Notepad"="c:\windows\notepad.exe".

删除启动应用程序 如果您尝试删除程序但在 StartUp 文件夹中找不到它(通常C:\WINDOWS\Start Menu\Programs\StartUp),那么它可能是从下面的注册表项之一启动的。要删除它,请删除与要删除的程序关联的值。

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]

资料来源:http ://www.pctools.com/guides/registry/detail/109/

于 2009-10-12T22:38:22.120 回答
2

如果您确实需要在 Windows 启动时而不是在有人登录时启动您的应用程序,您需要将其创建为服务并在安装时将服务设置为“自动”。

网上有很多地方可以为您提供有关此方面的信息:

是我找到的前三个,但做一些研究并找到适合你的资源。

更新

我从更新的问题中看到,要求程序在有人登录时运行,所以这个答案(在一定程度上)是多余的。但是,我会把它留在这里,以防有人想要进入服务根目录。

于 2009-10-12T22:40:58.230 回答
1

您可以在启动文件夹中为您的 winforms 程序添加快捷方式。安装项目的文件系统是您需要查看的地方。

于 2009-10-12T22:36:46.367 回答
1

从技术上讲,您无法在“启动 Windows”时启动 WinForms 应用程序;但是,您可以在有人登录 Windows 时启动它。要执行此操作,请执行以下三个操作之一:

  1. 在当前用户的启动文件夹中放置一个快捷方式。
  2. 在“所有用户”启动文件夹中放置一个快捷方式。
  3. 将注册表项写入 HKLM/Software/Microsoft/Windows/CurrentVersion/Run

更新:正如克里斯指出的那样,我错过了 HKCU 的道路。

于 2009-10-12T22:39:46.640 回答
1

要在每次Windows启动时运行,您应该将程序构建为 Windows 服务(或者可能从服务中启动它)。

于 2009-10-12T22:42:11.423 回答