如何在 Windows 启动时启动应用程序?
Posted
技术标签:
【中文标题】如何在 Windows 启动时启动应用程序?【英文标题】:How to start application on Windows startup? 【发布时间】:2014-03-25 10:57:31 【问题描述】:我正在创建 C++ 应用程序,并希望在启动 Windows 时为我的用户提供启动我的应用程序的选项。首先要记住的是我使用 Windows 注册表来设置它,但不知道在哪里写和写什么。另外,用户在运行我的应用程序时是否需要拥有管理员权限,以便它能够在需要时写入 Windows 注册表的那部分?
【问题讨论】:
您的意思是希望应用程序在 Windows 启动时启动,还是希望应用程序在用户登录时启动? 【参考方案1】:您需要使用Software\Microsoft\Windows\CurrentVersion\Run
键(有关更多信息,请参阅MSDN)。 (字符串)值应该是您的应用程序的路径。
您不需要管理权限即可在HKEY_CURRENT_USER
中创建它,但您的应用程序只会在当前用户的会话中启动。如果您需要为所有用户自动启动,请使用具有提升权限的HKEY_LOCAL_MACHINE
hive!
【讨论】:
谢谢。我认为这会做到。【参考方案2】:注册表是这样做的隐藏方式; “程序”菜单中的“启动”文件夹是用户可见的方法。见CSIDL_STARTUP
。不需要管理员权限,这是每个用户的设置。 CSIDL_COMMON_STARTUP
需要管理员权限。
【讨论】:
但是很难检测应用程序是否已经在启动中。 其实比较简单,就是文件检查一下。【参考方案3】:您可以通过注册表添加要启动的应用程序。 我为你写了一个示例函数
public void AddToStartup(string name)
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue(name + ".exe", Application.ExecutablePath.ToString());
【讨论】:
谢谢。我写代码没问题。我只是想知道在哪里写什么,写什么,是否需要管理员权限。以上是关于如何在 Windows 启动时启动应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在已修改为不运行资源管理器的 Windows 系统上启动时运行应用程序
调试tomcat应用程序时如何在windows中启动tomcat调试端口