delphi 用postMessage发送字符

演示了PostMessage, SendMessage, WM_CHAR发送汉字。

源代码:
-------------------------------------------

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  p rivate
    { P rivate declarations }
  public
    constructor Create(AOwner: TComponent); override;

    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$APPTYPE CONSOLE}
var
  hNotePad:HWND;
  hedit:HWND;

constructor TForm1.Create(AOwner: TComponent);
begin
  inherited;
  Memo1.Text:='这是猪悟能的postmessage测试';
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
    hNotePad:=FindWindow('Notepad','无标题 - 记事本');
    if hNotePad<>0 then
    begin
      hedit:=FindWindowEx(hNotePad,0,'edit',nil);
      PostMessage(hedit,WM_CHAR,Wparam('B'),0);
      Writeln('send');
    end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{ TODO -o猪悟能 : 发送串必须用sendMessage }
   hNotePad:=FindWindow(nil,'无标题 - 记事本');
   if hNotePad<>0 then
   begin
    hedit:=FindWindowEx(hNotePad,0,'edit',nil);
    SendMessage(hedit,WM_SETTEXT,Length(Memo1.Text),
      Integer(PChar(Memo1.Text)));
    Writeln('send');
   end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 hNotePad:=FindWindow('Notepad','无标题 - 记事本');
  if hNotePad<>0 then
  begin
    hedit:=FindWindowEx(hNotePad,0,'edit',nil);
    PostMessage(hedit,WM_CHAR,Wparam($bd),0);
    PostMessage(hedit,WM_CHAR,Wparam($f1),0);
    Writeln('send');
  end;
end;

end.

 

posted @ 2017-08-25 17:06  夏天的西瓜君  阅读(1377)  评论(0编辑  收藏  举报