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.