System Error.Code 1411.热键已注册
Win2000+D6
======================
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;const
LSX_MYMESSAGE = WM_USER + $1100;
MsgStr = 'This is my message!';type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
cb1: TCheckBox;
cb2: TCheckBox;
cb3: TCheckBox;
cb4: TCheckBox;
PostMsg: TButton;
SendMsg: TButton;
procedure PostMsgClick(Sender: TObject);
procedure SendMsgClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure OnAppMsg(var msg:TMsg; var handle: Boolean);
Procedure LSXMyMessage(var msg:TMessage);message LSX_MYMESSAGE;
public
procedure WndProc(var msg:TMessage);override;
procedure DefaultHandler(var msg);override;
end;var
Form1: TForm1;implementation{$R *.dfm}
const
//声明两个字符串,表明消息是被Send或Post
PostSendStr: array[0..1] of string=('sent','posted');//将消息Post方式发送给当前窗口
procedure TForm1.PostMsgClick(Sender: TObject);
begin
PostMessage(handle,LSX_MYMESSAGE,1,0);
end;//将消息以Send方式发送给当前窗口
procedure TForm1.SendMsgClick(Sender: TObject);
begin
SendMessage(handle,LSX_MYMESSAGE,0,0);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
//将OnMessage设为自己的处理函数
Application.OnMessage := OnAppMsg;end;//处理OnMessage事件的过程
procedure TForm1.OnAppMsg(var msg: TMsg; var handle: Boolean);
begin
//检查是否是自定义消息
if msg.message = LSX_MYMESSAGE then
if cb1.Checked then
begin
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'Application.OnMessage'] ) );
handle := false;
end;
end;//窗体的WinProc函数
procedure TForm1.WndProc(var msg: TMessage);
begin
if msg.Msg = LSX_MYMESSAGE then
if cb2.Checked then
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'WndProc'] ) );
inherited WndProc(msg);
end;//处理自定义的消息
procedure TForm1.LSXMyMessage(var msg: TMessage);
begin
if msg.Msg = LSX_MYMESSAGE then
if cb3.Checked then
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'Message Procedure'] ) );
end;//窗口默认的处理过程
procedure TForm1.DefaultHandler(var msg);
begin
if TMessage(msg).Msg = LSX_MYMESSAGE then
if cb4.Checked then
showmessage( Format( MsgStr,[PostSendStr[TMessage(msg).wParam],'Default Handler'] ) );
end;end.
Win2000+D6
======================
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;const
LSX_MYMESSAGE = WM_USER + $1100;
MsgStr = 'This is my message!';type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
cb1: TCheckBox;
cb2: TCheckBox;
cb3: TCheckBox;
cb4: TCheckBox;
PostMsg: TButton;
SendMsg: TButton;
procedure PostMsgClick(Sender: TObject);
procedure SendMsgClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure OnAppMsg(var msg:TMsg; var handle: Boolean);
Procedure LSXMyMessage(var msg:TMessage);message LSX_MYMESSAGE;
public
procedure WndProc(var msg:TMessage);override;
procedure DefaultHandler(var msg);override;
end;var
Form1: TForm1;implementation{$R *.dfm}
const
//声明两个字符串,表明消息是被Send或Post
PostSendStr: array[0..1] of string=('sent','posted');//将消息Post方式发送给当前窗口
procedure TForm1.PostMsgClick(Sender: TObject);
begin
PostMessage(handle,LSX_MYMESSAGE,1,0);
end;//将消息以Send方式发送给当前窗口
procedure TForm1.SendMsgClick(Sender: TObject);
begin
SendMessage(handle,LSX_MYMESSAGE,0,0);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
//将OnMessage设为自己的处理函数
Application.OnMessage := OnAppMsg;end;//处理OnMessage事件的过程
procedure TForm1.OnAppMsg(var msg: TMsg; var handle: Boolean);
begin
//检查是否是自定义消息
if msg.message = LSX_MYMESSAGE then
if cb1.Checked then
begin
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'Application.OnMessage'] ) );
handle := false;
end;
end;//窗体的WinProc函数
procedure TForm1.WndProc(var msg: TMessage);
begin
if msg.Msg = LSX_MYMESSAGE then
if cb2.Checked then
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'WndProc'] ) );
inherited WndProc(msg);
end;//处理自定义的消息
procedure TForm1.LSXMyMessage(var msg: TMessage);
begin
if msg.Msg = LSX_MYMESSAGE then
if cb3.Checked then
showmessage( Format( MsgStr,[PostSendStr[msg.wParam],'Message Procedure'] ) );
end;//窗口默认的处理过程
procedure TForm1.DefaultHandler(var msg);
begin
if TMessage(msg).Msg = LSX_MYMESSAGE then
if cb4.Checked then
showmessage( Format( MsgStr,[PostSendStr[TMessage(msg).wParam],'Default Handler'] ) );
end;end.
inherited DefaultHandler(msg);