如何在Windows启动时启动exe

时间:2011-03-22 16:00:36

标签: c# windows startup

  

可能重复:
  How to put exe file in windows Startup

假设我已经在C#中构建了一个应用程序,一旦我安装它,我希望它在Windows启动时在后台运行,或者你可以说用户登录到他的Windows帐户。有什么方法可以做到吗?除了写一个Windows服务?

应用程序基本上会在触发某个事件时显示消息 感谢

9 个答案:

答案 0 :(得分:55)

添加到Windows启动文件夹的快捷方式:

Environment.GetFolderPath(Environment.SpecialFolder.Startup)

或者添加到注册表中,如下所示:

RegistryKey add = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
add.SetValue("Your App Name", "\"" + Application.ExecutablePath.ToString() + "\"");

如果您希望将CurrentUser与每个用户一起运行,可以将其更改为LocalMachine。感谢Aidiakapi。

答案 1 :(得分:13)

这可以使用Windows注册表完成。我建议你检查这个注册表项。

HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx 

答案 2 :(得分:2)

您可以将您的应用程序添加到注册表以在

启动时运行

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_CURREN_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

或者您可以将其添加到系统的启动文件夹中。

如果您不想编写服务,这些可能是最常见/最简单的选项。

答案 3 :(得分:2)

您必须在注册表中设置一个指向可执行文件的新密钥。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

此链接中的更多信息 http://msdn.microsoft.com/en-us/library/aa376977(v=vs.85).aspx

答案 4 :(得分:1)

最简单的方法是在%userprofile%\Start Menu\Programs\Startupdirectory%allusersprofile%\Start Menu\Programs\Startup

中添加或快捷方式

注册表项HKLM\Software\Microsoft\Windows\CurrentVersion\Run(所有用户)和HKCU\Software\Microsoft\Windows\CurrentVersion\Run(仅限当前用户)也将投放。

将其作为服务进行安装通常是一种很好的方法,但如果您要按照自己的说法进行互动则不行。

答案 5 :(得分:0)

您可以将Path写入Registry

中的可执行文件
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

每次启动Windows时都会执行它。

答案 6 :(得分:0)

您可以在C:\Users\@username@\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

中设置应用程序的快捷方式

您使用的是Visual Studio安装项目吗?如果是,您可以直接从那里设置快捷方式。

答案 7 :(得分:0)

这听起来好像你应该使用“Windows服务”。

还有其他选项,例如在程序菜单中包含EXE到“Startup”文件夹的快捷方式(如果您希望它为该系统上的所有用户运行,则为“所有用户”)。

另一种选择是使用Windows注册表。您可以在“Run”中添加一个指向exe的条目:

* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

答案 8 :(得分:0)

由于没有其他人提到它,我会指出你也可以使用一个计划任务来实现这一点,他的触发器是“在系统启动时”。但是,我没有尝试使用需要UI交互的应用程序 - 它适用于后台进程,但我怀疑它不适用于需要桌面上下文的东西(因为在用户登录之前没有一个 - 上)。