【问题标题】:My WPF app is not starting but there are no errors in the errors tab?我的 WPF 应用程序没有启动,但错误选项卡中没有错误?
【发布时间】:2022-10-02 14:48:47
【问题描述】:

这是我的用户控件的代码

 public UserControl2()
    {
        InitializeComponent();
        RegistryKey key = Registry.LocalMachine.OpenSubKey(@\"CurrentControlSet\\Services\\XblGameSave\");
        uint value = (uint)key.GetValue(\"Start\");
        if (value == 4)
        {
            Disable_Xbox_Services.IsChecked = true;
        }
    }

但是当我运行我的应用程序时,即使错误选项卡中没有错误,它也不会启动。请告诉我这样做的原因。这是复选框的 XAML 代码。

 <CheckBox Name=\"Disable_Xbox_Services\" FontSize=\"26\" Foreground=\"GhostWhite\" >Disable Xbox services</CheckBox>

   
  • 开始 -> 事件查看器 -> Windows 日志 -> 应用程序:查看是否有一些与您的应用程序相关的异常
  • 如果有意义,错误选项卡不会显示运行时错误。您必须在调试模式下运行应用程序才能了解应用程序的运行时错误。日志记录也有帮助。但是在您的情况下以调试模式运行更方便,因为调试器将在发生错误的确切行处中断。
  • 如果某些事情没有按预期运行,您必须发布所有重现该问题的相关代码。查看代码 sn-ps 是没有用的。 How do I ask a good question?.
  • 这可能是因为您没有以管理员身份运行您的应用程序,因此您没有从注册表读取的权限。因此,如果您从调试文件夹以管理员身份运行您的应用程序,它可能没有任何问题。无论如何,您不是在调试模式下在 Visual Studio 中运行代码吗?它不会停在发生异常的行吗?将代码包装在 try/catch 块中,并在 catch 语句处设置断点以读取异常消息。
  • 调试会让您意识到key 为空,因为该键不存在。也许你想打开SYSTEM\\CurrentControlSet\\Services\\XblGameSave

标签: c# .net wpf registry


【解决方案1】:

我知道了发生这种情况的原因。我不得不使用 Convert.ToUint32 而不是(uint)。 这是正在运行的代码。

InitializeComponent();
        RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\XblGameSave");
        uint value = Convert.ToUInt32(key.GetValue("Start"));
        if (value == 4)
        {
            Disable_Xbox_Services.IsChecked = true;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2017-04-08
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多