C# 强制Winforms安装以使应用程序在windows启动时启动
如何强制windows应用程序安装,并将安装项目添加到该应用程序中,以便在每次有人登录windows时启动该应用程序C# 强制Winforms安装以使应用程序在windows启动时启动,c#,windows,installation,startup,C#,Windows,Installation,Startup,如何强制windows应用程序安装,并将安装项目添加到该应用程序中,以便在每次有人登录windows时启动该应用程序 编辑:我知道注册表设置,但具体地说,我正在寻找一种允许安装程序设置注册表值的解决方案。您可以在启动文件夹中为winforms程序添加快捷方式。安装项目的文件系统是您需要查看的地方。打开注册表并找到注册表项 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]. 对于要启动的每个程序,使用描述性名称自动
编辑:我知道注册表设置,但具体地说,我正在寻找一种允许安装程序设置注册表值的解决方案。您可以在启动文件夹中为winforms程序添加快捷方式。安装项目的文件系统是您需要查看的地方。打开注册表并找到注册表项
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run].
对于要启动的每个程序,使用描述性名称自动创建一个新的字符串值,并将该字符串的值设置为程序可执行文件
例如,要自动启动记事本,请添加
"Notepad"="c:\windows\notepad.exe".
删除启动应用程序
如果您试图删除一个程序,但在启动文件夹中找不到它(通常是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]
来源:从技术上讲,当“windows已启动”时,无法启动WinForms应用程序;但是,当有人登录Windows时,您可以启动它。要执行此操作,请执行以下三种操作之一:
更新:正如Chris指出的,我错过了HKCU的路径。如果您真的需要在Windows启动时启动应用程序,而不是在有人登录时启动应用程序,则需要将其创建为服务,并在安装时将服务设置为“自动” 网站上有许多地方可以为您提供有关此方面的信息:
我从更新的问题中看到,要求程序在有人登录时运行,所以这个答案(在一定程度上)是多余的。不过,我会把它留在这里,以防有人想进入服务根目录。要在每次Windows启动时运行,您应该将程序构建为Windows服务(或者可能从服务启动)。简单的方法是创建安装程序util类,请参阅