【问题标题】:Forcing Winforms install to make application to start when windows starts强制 Winforms 安装以使应用程序在 Windows 启动时启动
【发布时间】:2009-10-12 22:34:06
【问题描述】:

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

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

【问题讨论】:

    标签: c# windows installation startup


    【解决方案1】:

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

    [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/

    【讨论】:

      【解决方案2】:

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

      网络上有很多地方可以为您提供相关信息:

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

      更新

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-23
            • 1970-01-01
            • 2016-06-22
            • 1970-01-01
            • 1970-01-01
            • 2011-03-27
            相关资源
            最近更新 更多