可能重复问题:
如何将exe文件放在Windows启动项中
假设我已经用C#构建了一个应用程序,一旦我安装它,我希望它在Windows启动时自动运行,或者可以说是当用户登录到他的Windows账户时自动运行。有没有办法可以做到这一点?除了编写一个Windows服务之外?
该应用程序基本上会在触发某个事件时显示消息。
可能重复问题:
如何将exe文件放在Windows启动项中
假设我已经用C#构建了一个应用程序,一旦我安装它,我希望它在Windows启动时自动运行,或者可以说是当用户登录到他的Windows账户时自动运行。有没有办法可以做到这一点?除了编写一个Windows服务之外?
该应用程序基本上会在触发某个事件时显示消息。
将应用程序添加到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的贡献。
\
字符。 - AidiakapimyApp.exe --hidden true --fastbootmode true
- MBH可以使用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
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
您需要在注册表中设置一个新的键,指向您的可执行文件。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
更多信息请查看此链接 http://msdn.microsoft.com/zh-cn/library/aa376977(v=vs.85).aspx
最简单的方法是将其或其快捷方式放置在%userprofile%\Start Menu\Programs\Startupdirectory
或%allusersprofile%\Start Menu\Programs\Startup
中。
注册表键HKLM\Software\Microsoft\Windows\CurrentVersion\Run
(所有用户)和HKCU\Software\Microsoft\Windows\CurrentVersion\Run
(仅当前用户)也可以使用。
将其安装为服务通常是一个好方法,但如果您要像您所说的那样进行交互,则不适用。
注册表
中编写可执行文件的 路径
。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
而且它会在每次启动Windows时执行。
C:\Users\@username@\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
中。嗯,这听起来你应该使用“Windows服务”。
还有其他选项,比如将EXE的快捷方式包含在程序菜单的“启动”文件夹中(如果您希望它在该系统上为所有用户运行,则为“所有用户”)。
另一个选择是使用Windows注册表。您可以添加一个指向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
既然没有人提到,我要指出你也可以使用计划任务来实现这一点,其触发器是“系统启动时”。但是,我尚未尝试将其用于需要 UI 交互的应用程序-它适用于后台进程,但我怀疑它不适用于需要桌面上下文的东西(因为在用户登录之前没有桌面上下文)。