如何在 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 启动时运行 C# 应用程序?

如何在已修改为不运行资源管理器的 Windows 系统上启动时运行应用程序

调试tomcat应用程序时如何在windows中启动tomcat调试端口

当用户在 10 秒内重新启动关闭的 Windows 商店应用程序时如何恢复数据

如何使用 WiX 安装和启动 Windows 服务

启动在 Windows 用户登录时模拟的应用程序