delphi向窗口发送字符串

现在只能发送一个字符,请高手帮忙改成可以发送一句话和发送确定键.h:=FindWindow('D3DWindow',nil);//根据类名找句柄ifh<>0thenSen... 现在只能发送一个字符,请高手帮忙改成可以发送一句话和发送确定键.
h:=FindWindow('D3D Window',nil); //根据类名找句柄
if h <> 0 then
SendMessage(h,WM_Char,Wparam('Q'),2);
谢谢大家.不会的免了,在线等.
展开
 我来答
KDERP
推荐于2018-03-30 · 知道合伙人软件行家
KDERP
知道合伙人软件行家
采纳数:266 获赞数:699
2016-2017荣获 金达软件(广州) 最佳项目负责人

向TA提问 私信TA
展开全部

用SHOWMESSAGE函数即可。

函数格式为SHOWMESSAGE(输出您想要显示的字符串)。

如你想在点击某个按钮时,弹出'您输入的密码有误,请重试!'的提示,操作如下:

1、选择某一按钮;

2、在其OnClick事件中,输入代码:ShowMessage('您输入的密码有误,请重试!');

3、编译程序后,点击该按钮,将会弹出提示,如下图:

遒劲且威武的小白桦s
推荐于2016-08-25 · TA获得超过115个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:192万
展开全部
用循环遍历字符串。
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);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qian2988
2012-03-20 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:127万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友32cbd97
2012-03-20 · TA获得超过211个赞
知道答主
回答量:129
采纳率:100%
帮助的人:63.2万
展开全部
建议你到网上搜spy++源码,,你这个实现很复杂,不是像你这样简单2句就可以搞定的。因为我决得你FindWindow的这个窗口肯定不是同一个进程,如果是同一个进程那就简单点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingmouse
2012-03-20
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
网上找的,没实验,仅供参考
发送方:
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式