演示了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.