怎样用findwindow找到application.message弹出的对话框的句柄?(50分)

  • 主题发起人 一个过客
  • 开始时间
我觉得历遍所有窗口没有HOOK方便一点,如果说历遍所有窗口是主动出击,HOOK就是守株待兔
 
谢谢前面几位朋友的回答。<br>hd:=findwindow(nil,'heihei');// 这句是找不到application.messagebox的对话框的,不信试一试。另外,您都已经把代码写的这么完整了,就没有运行起来试一试??<br><br>目前看来只有hook和用form自定义对话框是没有漏洞的方法。 <br><br>其实解决的办法很多,有的麻烦,有的简单-----仅仅是在我看来哈。比如我就认为hook是比较麻烦的,不如自己从Tform自定义一个对话框简单,而且自定义的对话框还可以加上很多自定义的东西,比如关闭倒计时提示信息什么的。<br><br>对这个问题,我最大的兴趣不仅仅是解决它,而是想知道,为什么findwindow/getwindow无论如何找不到application.messagebox的对话框? 用spy++看,该对话框有一个parent,这个parent就是application,但是看application却没有这个child,delphi的vcl真是很奇怪的架构。
 
分数不多,不好意思。下次多设点分。
 
》为什么findwindow/getwindow无论如何找不到application.messagebox的对话框<br>findwindow是可以的,我确实找到了<br>GetWindow我没有试<br>难道是CB和D不一样???
 
如果自定义窗,Delphi 运行时错误窗口和windows错误窗口如何办?<br>不过可以频繁的用try解决<br>try<br>....<br>except<br> &nbsp;自定义提示窗.showmessage(....);<br>end;
 
也挺有意思的,我这里能找到,能关闭<br>#32770 or title 都可以。<br>说笑吧,,,<br>你说我写完了能不测试一下吗?<br>不但可以我还用windows.messagebox,showmessage,在线程中生成的application.messagebox,vc close delphi的box,delphi close vc的box,<br>都可以,生成50多个box,一一ko,<br><br>你那里不行是不是你那里装了hook对消息拦截了,<br>findwindow需要给窗口发送消息,<br>来取得相关内容。<br><br>你的也没有描述问题环境,我模拟不出来<br>去看看msdn吧。
 
这么麻烦干吗呢?还不如自己搞个提示窗口,在窗口放个Timer来关闭不就行了,反正是你自己的软件嘛。
 
多人接受答案了。
 
顶部