📜  Windows 启动时启动 wpf 应用程序 - C# (1)

📅  最后修改于: 2023-12-03 15:35:42.325000             🧑  作者: Mango

Windows 启动时启动 WPF 应用程序 - C#

在 Windows 操作系统中,我们可以将某些应用程序在启动时自动启动。本文将介绍如何在 Windows 启动时启动 WPF 应用程序。

实现步骤
  1. 打开 WPF 应用程序的项目,右键项目文件,选择“属性”,进入“应用程序”选项卡。

  2. 在“启动对象”下拉框中选择“窗体”,并选择您希望在 Windows 启动时自动启动的窗体。

    step1

  3. 打开“程序.cs”文件,在 Main 函数中添加以下代码:

    var appName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
    var runKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
    
    if (runKey.GetValue(appName) == null)
    {
        runKey.SetValue(appName, Application.ExecutablePath.ToString());
    }
    

    这段代码的作用是将当前应用程序的可执行文件路径添加到 Windows 注册表的自动启动项中。

  4. 在添加完注册表项后,我们可以通过以下代码获取当前应用程序是否已设置为 Windows 启动项:

    var appName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
    var runKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
    var hasKey = runKey.GetValue(appName) != null;
    
  5. 当需要取消开机启动时,我们可以在应用程序的设置或者选项中添加一个选项卡,然后在用户单击“取消开机启动”按钮时,执行以下代码:

    var appName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
    var runKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
    runKey.DeleteValue(appName, false);
    
注意事项
  • 只要应用程序设置为 Windows 启动项,当 Windows 启动时就会自动启动该应用程序,不管是当前用户登录还是新用户登录。
  • 在执行操作前,请确保当前用户已经登录并有管理员权限。
总结

通过本文的介绍,我们了解了如何在 Windows 启动时启动 WPF 应用程序,并且提供了注册表项的添加、查询、删除等功能的示例代码。希望这篇文章对大家有所帮助!