发送消息,关闭弹出窗口

allen12345 2011-10-17 03:56:16
程序运行时,经常有弹出了个窗口,要自动关闭它,该怎么办?我弹出窗口的模式是
Application.MessageBox(Pchar('****'),Pchar('***'),Mb_OK); //我用个线程来不断搜索,试图关闭它,可是不成功。help!
Application.MessageBox标题和内容都不固定。谢谢各位大大大大
...全文
200 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingtuzhong 2011-10-17
  • 打赏
  • 举报
回复
使用EmbeddedWb:
http://www.euromind.com/iedelphi/embeddedwb.htm

在它的OnShowMessage中屏蔽:
http://www.euromind.com/iedelphi/embeddedwb/onshowmessage.htm
onlyou13 2011-10-17
  • 打赏
  • 举报
回复
改写下Application.MessageBox这个函数,让它可以自己关闭,it is very easy.
lght 2011-10-17
  • 打赏
  • 举报
回复
线程里不行,时钟里可以。
tgbd 2011-10-17
  • 打赏
  • 举报
回复
呵呵呵,这个功能我做过的。
场景是这样的:比如在点击保存按钮时,保存结束后,利用系统application弹出消息,
提示用户,但过1秒或2秒钟,自动关闭这个提示窗。

实现方法:利用Ttimer实现,例如设置Ttimer为1秒执行

var H:THANDLE;
buf:array of [0..128] of char;
begin
time1.enabled:=false;
H:=GetActiveWindow();
if H<>0 then
begin
GetClassName(H,buf,64);
GetWindowText(H,buf+64,64);
end;
if (StrComp(buf,'#32770')=0) then
EndDialog(H,IDOK);
end;


在需要显示提示窗的按钮中激活timer1 即timer1.enabled:=true;
lght 2011-10-17
  • 打赏
  • 举报
回复
确实不行,枚举吧。
EnumWindows()或者
GetWindow()
allen12345 2011-10-17
  • 打赏
  • 举报
回复
也不行啊,help
lh412552703 2011-10-17
  • 打赏
  • 举报
回复
???有同感^
lght 2011-10-17
  • 打赏
  • 举报
回复
FindWindowEx(父窗口句柄, 0, '#32770 (Dialog)', nil)
allen12345 2011-10-17
  • 打赏
  • 举报
回复
我用这个
for i:=0 to Screen.FormCount-1 do 都遍历不到那个Application.MessageBox窗口,但是可以遍历showmessage弹出的窗口。
allen12345 2011-10-17
  • 打赏
  • 举报
回复
问题是,怎么findwindow呢?标题和其内容都不固定,
hwnd1:=FindWindow(lpclassname,lpwindownname);//
lght 2011-10-17
  • 打赏
  • 举报
回复
先findwindow,再sendmessage

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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