网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
采用多线程技术来关闭application.messagebox
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

//主要思路:在另个个线程查找到该消息框,然后发WM_CLOSE消息  
//为区别是其他的程序的消息框,我在提示的标题上多了一个空格,其实也可以用其他的办法。  
//原码如下:  


var   myclose:tcloseother;  

begin  
  myclose:=tcloseother.Create(false);  
  myclose.FreeOnTerminate:=true;  
  application.MessageBox(''程序已经运行!'',''消息提示 '',mb_ok+mb_iconinformation);  
end;  

unit closeother;  

interface  

uses  
  Classes,messages,sysutils,windows,forms;  

type  
  tcloseother = class(TThread)  
  private  
    { Private declarations }  
  protected  
    procedure Execute; override;  
  public  
    //procedure create(myhwnd:integer);  
  end;  

implementation  

{ Important: Methods and properties of objects in VCL can only be used in a  
  method called using Synchronize, for example,  

      Synchronize(UpdateCaption);  

  and UpdateCaption could look like,  

    procedure tcloseother.UpdateCaption;  
    begin  
      Form1.Caption := ''Updated in a thread'';  
    end; }  

{ tcloseother }  


//procedure tcloseother.create(myhwnd: integer);  
//begin  
//end;  

procedure tcloseother.Execute;  
const  
  NumSec=5;  //设置5秒后自动关闭  
var  
  messagehwnd:integer;  
  starttime:tdatetime;  
begin  
  StartTime := now;  
  repeat  
    Application.ProcessMessages;  
  until Now > StartTime + NumSec * (1/24/60/60);  
  messagehwnd:=FindWindow(nil,''消息提示 '');  
  postmessage(messagehwnd,wm_close,0,0);  
end;  

end. 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号