当前位置:  开发笔记 > 编程语言 > 正文

如何模拟Windows关机以进行调试?

如何解决《如何模拟Windows关机以进行调试?》经验,为你挑选了2个好方法。

当Windows关闭时,我的应用程序出现问题 - 我的应用程序没有很好地退出,导致显示"结束任务"窗口.如何使用调试器查看发生了什么?

有没有办法将Windows关闭消息发送到我的应用程序,因此它认为Windows正在关闭,所以我可以看到它的确切行为?



1> dkl..:

Microsoft的Logo Testing Tools for Windows中有一个名为Restart Manager(rmtool.exe)的工具,可用于向进程发送关闭和重新启动消息.可在此处下载徽标测试工具:

http://download.microsoft.com/download/d/2/5/d2522ce4-a441-459d-8302-be8f3321823c/LogoToolsv1.0.msi

然后,您可以模拟进程的关闭:

rmtool.exe -p [PID] -S

其中[PID]是进程ID.根据Vista徽标认证测试用例文档,

重启管理器关闭消息是:

一个.带有LPARAM = ENDSESSION_CLOSEAPP(0x1)的WM_QUERYENDSESSION:GUI应用程序必须立即响应(TRUE)以准备重新启动.

湾 带有LPARAM的WM_ENDSESSION = ENDSESSION_CLOSEAPP(0x1):应用程序必须在5秒内关闭(服务为20秒).

C.CTRL_SHUTDOWN_EVENT:控制台应用程序必须立即关闭.


你的链接坏了.徽标测试工具是旧的Windows 7客户端软件徽标计划的一部分.这些工具不再在微软的网站上.这些工具似乎已被Windows应用认证工具包取代,该工具包是Windows 10桌面应用认证计划的一部分.该工具包不包括`rmtool.exe`,只包括`rmlogotest.exe`.我在其他地方写过一些关于`rmlogotest.exe`的文章; 阅读我写的内容,请点击[此链接](http://superuser.com/questions/959364/on-windows-how-can-i-gracefully-ask-a-running-program-to-terminate# 1154058).

2> Jon Tackabur..:

我相信当Windows关闭时,它会向所有应用程序发送"WM_QueryEndSession".要模拟Windows关闭,您可以创建一个小应用程序,只需将PostMessage与此消息一起发送到您的应用程序,然后查看会发生什么.Windows可能会发送比实际关闭应用程序更多的消息(如WM_CLOSE),但只要您的应用程序收到"WM_QueryEndSession"消息,就意味着您的应用程序即将从其下面取出地毯.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有