用vc关掉windows中的错误窗口

howzmh 2009-08-10 03:08:36
正在写一个程序A来管理系统中的各个程序的运行状况。对于有些是没有源码的第三方程序,遇到有的程序跳出的窗口,A程序可以发现并且发送消息或者模拟键盘来进行响应。但是现在遇到一个第三方程序在某个小概率事件发生的时候会报系统错误,就是那种窗口:“XX指令引用了XX内存,该内存不能为read 按'确定'终止,按‘取消’来调试”。想关掉这个窗口然后重新启动该程序。但是以上的方法对这个窗口无效,请教大家怎样关掉这个窗口!!
我处理其他窗口时这么做的:
1,FindWindows:根据窗口名字找到窗口句柄
2,SendWindowsPos:将窗口置顶
Key_event模拟键盘(VK_RETURN)
或者 SendMessage 发送键盘消息。(hwnd,WM_KEYDOWN,VK_RETURN,1 之后hwnd,WM_KEYUP,VK_RETURN,1)

以上两种方法对一般窗口有效,对系统错误的窗口无效。(但是当发送WM_CLOSE时候有效,不过这等同于按‘取消’,会调用VC来调试,不是想达到的效果)

各位有没有解决过这个问题的,或者知道怎么做的。请指点一下。十分感谢!!
...全文
175 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y神圣 2009-08-17
  • 打赏
  • 举报
回复
说错了,是WM_DESTROY
Y神圣 2009-08-17
  • 打赏
  • 举报
回复
不能用PostMessage(WM_QUIT)么?
aa3000 2009-08-10
  • 打赏
  • 举报
回复
直接关闭进程就是了,如4楼所说。

但楼主的想法还是可以实现的,找到窗口后用 EndDialog(hwnd, IDOK);
lygfqy 2009-08-10
  • 打赏
  • 举报
回复
获取进程快照,关闭进程,然后再调用这个exe文件
WuXinyang 2009-08-10
  • 打赏
  • 举报
回复
FindWindow(...)
SendMessage(WM_CLOSE)
fishion 2009-08-10
  • 打赏
  • 举报
回复
你先获取那个系统错误的窗口的句柄,再用FindWindowEx获取按钮的句柄,给其发送WM_COMMAND消息,
没验证过,不知道有用否
MoXiaoRab 2009-08-10
  • 打赏
  • 举报
回复
这玩意不好弄的

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧