delphi向窗口发送字符串
现在只能发送一个字符,请高手帮忙改成可以发送一句话和发送确定键.h:=FindWindow('D3DWindow',nil);//根据类名找句柄ifh<>0thenSen...
现在只能发送一个字符,请高手帮忙改成可以发送一句话和发送确定键.
h:=FindWindow('D3D Window',nil); //根据类名找句柄
if h <> 0 then
SendMessage(h,WM_Char,Wparam('Q'),2);
谢谢大家.不会的免了,在线等. 展开
h:=FindWindow('D3D Window',nil); //根据类名找句柄
if h <> 0 then
SendMessage(h,WM_Char,Wparam('Q'),2);
谢谢大家.不会的免了,在线等. 展开
5个回答
展开全部
用循环遍历字符串。
var
myword: string;
h: hwnd;
i: integer;
begin
myword := '你好啊'; //这里赋值上你要发送的话,可以是中文
h:=FindWindow('D3D Window',nil); //查找窗口句柄
if h <> 0 then
begin
for i:= 1 to length(myword) do //循环
begin
PostMessage(h,WM_Char,Wparam(myword[i]),0); //发送字符串给窗口
end;
end;
end;
//亲测可行
var
myword: string;
h: hwnd;
i: integer;
begin
myword := '你好啊'; //这里赋值上你要发送的话,可以是中文
h:=FindWindow('D3D Window',nil); //查找窗口句柄
if h <> 0 then
begin
for i:= 1 to length(myword) do //循环
begin
PostMessage(h,WM_Char,Wparam(myword[i]),0); //发送字符串给窗口
end;
end;
end;
//亲测可行
追问
这个可行的,怎么发送alt+C组合键,请帮忙下.谢谢!
追答
PostMessage(h,WM_SYSKEYDOWN,67,$20000000);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SendMessage(h,WM_SETTEXT,255,Integer(PChar(Msg)));
SendMessage(h,WM_SETFOCUS,0,0);
SendMessage(h,WM_LBUTTONDOWN,0,0);
SendMessage(h,WM_LBUTTONUP,0,0);
SendMessage(h,WM_KILLFOCUS,0,0);
SendMessage(h,WM_SETFOCUS,0,0);
SendMessage(h,WM_LBUTTONDOWN,0,0);
SendMessage(h,WM_LBUTTONUP,0,0);
SendMessage(h,WM_KILLFOCUS,0,0);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你到网上搜spy++源码,,你这个实现很复杂,不是像你这样简单2句就可以搞定的。因为我决得你FindWindow的这个窗口肯定不是同一个进程,如果是同一个进程那就简单点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网上找的,没实验,仅供参考
发送方:
a:TStrings;
a := TStringList.Create;
SendMessage(Formb.Handle, WM_YOURMESSAGE, 0, LongInt(a));
接收方:
b:TStrings;
b := TStringList.Create;
b.Assign(TStrings(Msg.WParam));
TStrings(Msg.WParam).Free;
发送方:
a:TStrings;
a := TStringList.Create;
SendMessage(Formb.Handle, WM_YOURMESSAGE, 0, LongInt(a));
接收方:
b:TStrings;
b := TStringList.Create;
b.Assign(TStrings(Msg.WParam));
TStrings(Msg.WParam).Free;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询