我有一个 .Net 2.0 WinForms 应用程序,我正在尝试将其用作登录屏幕保护程序(64 位 Win7Pro)。当我登录并作为我的屏幕保护程序时,它从命令行运行得很好。但是,当作为登录屏幕保护程序运行时,它会立即退出。
我知道它得到了一个 CLR 异常,因为它的退出代码是 0xE0434F4D,但我不知道如何调试它。
有什么办法可以在Win7中调试登录屏幕保护程序?
我有一个 .Net 2.0 WinForms 应用程序,我正在尝试将其用作登录屏幕保护程序(64 位 Win7Pro)。当我登录并作为我的屏幕保护程序时,它从命令行运行得很好。但是,当作为登录屏幕保护程序运行时,它会立即退出。
我知道它得到了一个 CLR 异常,因为它的退出代码是 0xE0434F4D,但我不知道如何调试它。
有什么办法可以在Win7中调试登录屏幕保护程序?
如果要调试登录屏幕,则需要附加内核调试器。
msvsmon 和其余部分不会从登录屏幕运行,因为没有用户会话(因为您还没有登录)。
从内核调试器调试 CLR 会很有趣;可以从 windbg获得一些基本的CLR 调试,但这并不简单。
您可以只创建一个日志文件(或使用Windows 事件跟踪,这可以避免大量安全问题)来跟踪故障。
您可以通过 Visual Studio 从远程计算机附加到进程来进行调试。
但是,可能有更简单的解决方案。WinForms 应用程序有一个 Program 类。如果您在启动 Form 的 Program 类中的代码周围放置一个 Try--Catch 短语,那么当应用程序崩溃时,您可以使用完整的堆栈跟踪记录异常。从那里你应该能够更容易地确定问题(我猜这与特权有关)并纠正它。