进程间传递消息(发送和接收系统消息)

    技术2022-05-11  149

    {  2002.07.22  关于如何发送和接收系统消息  作者:王珍义  nickname:LargeWang(老王)  QQ: 33728007  欢迎光临鹏业软件 www.pengesoft.com.cn

      以下代码Delphi7.0通过,编译后启动两个进程,然后在一个窗口中点击Button1试试。}

    unit Unit1;

    interface

    uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;

    type  TForm1 = class(TForm)    Button1: TButton;    procedure FormCreate(Sender: TObject);    procedure Button1Click(Sender: TObject);  private    Msg: LongInt;    { Private declarations }  protected    procedure WndProc(var Message: TMessage); override;  public

        { Public declarations }  end;

    var  Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);begin  Msg := RegisterWindowMessage('wm_mymessage');  Self.BringToFront;end;

    procedure TForm1.WndProc(var Message: TMessage);begin  if Message.Msg = Msg then begin    Caption := '';    ShowMessage('收到消息了');  end  else begin    inherited;  end;end;

    procedure TForm1.Button1Click(Sender: TObject);var  M: TMessage;  B: DWord;begin  M.Msg := Msg;  B := BSM_ALLCOMPONENTS;  BroadcastSystemMessage(BSF_POSTMESSAGE, @B , M.Msg, M.WParam, M.LParam );end;

    end.

    窗口文件object Form1: TForm1  Left = 192  Top = 107  Width = 696  Height = 480  Caption = 'Form1'  Color = clBtnFace  Font.Charset = DEFAULT_CHARSET  Font.Color = clWindowText  Font.Height = -11  Font.Name = 'MS Sans Serif'  Font.Style = []  OldCreateOrder = False  OnCreate = FormCreate  PixelsPerInch = 96  TextHeight = 13  object Button1: TButton    Left = 204    Top = 84    Width = 75    Height = 25    Caption = 'Button1'    TabOrder = 0    OnClick = Button1Click  endend


    最新回复(0)