接受sendmessage(application.handle..)的消息?

本文介绍了一个使用Delphi编写的简单应用程序实例,该程序通过自定义窗口消息来触发特定的操作。具体实现了当发送自定义消息`wm_mymessage`到应用程序句柄时显示一条消息框。
unit   Unit1; 

interface 

uses 
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms, 
    Dialogs,   StdCtrls,   sockets; 
const 
  wm_mymessage   =   wm_user   +   1; 
type 
    TForm1   =   class(TForm) 
        btn1:   TButton; 
        procedure   FormShow(Sender: TObject);
        procedure   btn1Click(Sender:   TObject); 
    private 
        {   Private   declarations   } 
    public 
        {   Public   declarations   } 
        procedure   mymessage(var   Msg:   TMsg;   var   Handled:   Boolean); 
    end; 

var 
    Form1:   TForm1; 

implementation 

{$R   *.dfm} 

procedure   TForm1.FormShow(Sender: TObject); 
begin 
    application.onmessage   :=   mymessage; 
end; 

procedure   TForm1.mymessage(var   Msg:   TMsg;   var   Handled:   Boolean); 
begin 
    if   msg.message   =   wm_mymessage   then   
        showmessage( 'ok '); 
end; 

procedure   TForm1.btn1Click(Sender:   TObject); 
begin 
//     sendmessage(handle,   wm_mymessage,0,   0); 
  //  sendmessage(application.handle,   wm_mymessage,0,   0);   // 
    postmessage(application.handle,   wm_mymessage,0,   0);   // 

end; 



  




                
function LoadDLL(Sender: TObject): Boolean; var CreateMainForm : function: TForm; stdCall; B : Boolean; begin Result := False; B := ParentIs('BDS.EXE'); SendMessage(frmsplash.Handle, Msg_Main, 204, 4); CheckParent; DM.ServerName := ''; DM.SysType := 0; uFunc.wpGrade.ParentName := 'gPallas.exe'; uFunc.wpGrade.SysName := 'gPallas'; uFunc.wpGrade.ProjectName := GetIniValue('gPallas', '项目名称', '广东省交通工程质量综合管理平台'); try Application.ProcessMessages; frmsplash.FormStyle := fsNormal; if not uFunc.wpGrade.UpgradeStartup(True) then Exit; frmsplash.FormStyle := fsStayOnTop; Application.ProcessMessages; SendMessage(frmsplash.Handle, Msg_Main, 204, 1); frmsplash.FormStyle := fsNormal; Application.ProcessMessages; if not LoadDLL_Resource then Exit; //资源文件,与其他无关 if not B then frmsplash.FormStyle := fsStayOnTop; Application.ProcessMessages; frmsplash.FormStyle := fsNormal; Application.ProcessMessages; if not LoadDLL_wpFunc then Exit; //通用函数,与其他无关 if not B then frmsplash.FormStyle := fsStayOnTop; Application.ProcessMessages; frmsplash.FormStyle := fsNormal; Application.ProcessMessages; if not LoadDLL_weepalsc(True) then Exit; //扩展函数,关联 wpFunc.DLL、UDM if not B then frmsplash.FormStyle := fsStayOnTop; Application.ProcessMessages; if lhwpBasic = 0 then Exit; @CreateMainForm := GetProcAddress(lhwpBasic, PAnsiChar('_CreateMainForm')); if @CreateMainForm = nil then Exit; if CreateMainForm = nil then Exit; except on E: Exception do begin ShowMessage(E.Message); TerminateProcess(OpenProcess(PROCESS_TERMINATE, Bool(0), GetCurrentProcessId), 0); end; end; Result := True; end;
最新发布
10-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值