如何向 NOPAND 发送字符(200分)

  • 主题发起人 主题发起人 hryyx
  • 开始时间 开始时间
H

hryyx

Unregistered / Unconfirmed
GUEST, unregistred user!
当记事本正在运行时如何向其发送一串字符
 
使用Windows消息,WM_CHAR,至于具体用法嘛,喳喳帮助就可以了。
 
先获取该窗口的句柄,然后放松一个信息过去....
 
先用FindWindow找其窗口句柄,然后向之发WM_CHAR或WM_KEYDOWN即可。
 
在你的单元里 uses unit2; 即可。 :-)

unit Unit2;
interface
uses windows,messages;
procedure SendKeys(sSend:string);

implementation
procedure SendKeys(sSend:string);
var
i:integer;
focushld,windowhld:hwnd;
threadld:dword;
ch: byte;
begin
windowhld:=GetForegroundWindow;
threadld:=GetWindowThreadProcessId(Windowhld,nil);
AttachThreadInput(GetCurrentThreadId,threadld,true);
Focushld:=getfocus;
AttachThreadInput(GetCurrentThreadId,threadld,false);
if focushld = 0 then Exit;
i := 1;
while i <= Length(sSend) do
begin
ch := byte(sSend);
if Windows.IsDBCSLeadByte(ch) then
begin
Inc(i);
SendMessage(focushld, WM_IME_CHAR, MakeWord(byte(sSend), ch), 0);
end
else
SendMessage(focushld, WM_IME_CHAR, word(ch), 0);
Inc(i);
end;
postmessage(focushld,WM_keydown,13,0);
end;
end.
 
多人接受答案了。
 
后退
顶部