Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 强制Winforms安装以使应用程序在windows启动时启动_C#_Windows_Installation_Startup - Fatal编程技术网

C# 强制Winforms安装以使应用程序在windows启动时启动

C# 强制Winforms安装以使应用程序在windows启动时启动,c#,windows,installation,startup,C#,Windows,Installation,Startup,如何强制windows应用程序安装,并将安装项目添加到该应用程序中,以便在每次有人登录windows时启动该应用程序 编辑:我知道注册表设置,但具体地说,我正在寻找一种允许安装程序设置注册表值的解决方案。您可以在启动文件夹中为winforms程序添加快捷方式。安装项目的文件系统是您需要查看的地方。打开注册表并找到注册表项 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]. 对于要启动的每个程序,使用描述性名称自动

如何强制windows应用程序安装,并将安装项目添加到该应用程序中,以便在每次有人登录windows时启动该应用程序


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

您可以在启动文件夹中为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时,您可以启动它。要执行此操作,请执行以下三种操作之一:

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

  • 更新:正如Chris指出的,我错过了HKCU的路径。

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

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

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

    更新


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

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

    简单的方法是创建安装程序util类,请参阅