繁体   English   中英

在系统启动时启动 WPF 应用程序时出错

[英]Error while starting a WPF-Application on System-Startup

我有一个 WPF 应用程序,如果我启动我的计算机,我想自动启动它。

我有一个窗口,用户可以在其中为应用程序配置一些设置,其中一个可能的配置选项是一个复选框,它允许用户禁用或启用应用程序以在系统启动时自动启动。

这就是我在注册表中设置或删除值的方式,具体取决于用户在复选框中的选择:

try
        {
            var currentAssembly = Assembly.GetExecutingAssembly();
            var rkApp = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);

            if (settingsViewModel.AutostartEnabled)
            {
                rkApp.SetValue(currentAssembly.GetName().Name, currentAssembly.Location);
            }
            else
            {
                rkApp.DeleteValue(currentAssembly.GetName().Name, false);
            }
        }
        catch (Exception exception)
        {
        }

我的问题是,即使应用程序已注册并且也可以在任务管理器的自动启动部分中看到,但每次重新启动计算机以检查应用程序是否已启动时,我都会收到以下错误:

“您正在尝试打开应用程序扩展名 (.dll) 类型的文件”

那么我做错了什么? 有什么办法可以避免这个错误或修复它吗? 我已经尝试将应用程序清单文件添加到我的项目中,以始终以管理员身份启动我的应用程序。 但这似乎也不起作用。

我很感激任何帮助。

尝试使用System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName ,而不是currentAssembly.Location

这应该为您提供正在运行的可执行文件的路径。 Assembly.GetEntryAssembly没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM