演示了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.
|
请发表评论