搜索
查看: 7649|回复: 4

几种设置外部程序控件文本的方法

[复制链接]

40

主题

565

帖子

3045

积分

新手入门

超级初学者

积分
3045
发表于 2010-11-27 19:02:19 | 显示全部楼层 |阅读模式
怎么没看到教程区呢?论坛设个教程区挺有意义的



除了模拟按键,还有什么方法可以设定文本框内容呢?
一、用Windows API
SetWindowText    (win.setText就是用的这个API)
SetDlgItemText
从MSDN上得知这两者不能操作外部程序的控件。这时候就体现出aardio的强大了。
prcs = process(pid)
setText = prcs.remoteApi("int(int hwnd,string lpString)","User32.dll","SetWindowTextA");
setText(hwnd,string)
这样用我有个问题,何时调用prcs.free()?
二、WM_IMECHAR   WM_CHAR
昨天在一个群里看到有人这么用的,未实证。
三、WM_SETTEXT
看过MSDN可知SetWindowText和SetDlgItemText都是通过WM_SETTEXT消息来实现的。
::SendMessage( hedit,0xC/*_WM_SETTEXT*/, null,string)
win库里定义后两个参数都是指针。
我之前自己写的时候用::SendMessageByString,一直没成功,还发帖问怎么取变量地址。
http://echong.taobao.com 各类话费充值,请多支持!
回复

使用道具 举报

40

主题

565

帖子

3045

积分

新手入门

超级初学者

积分
3045
 楼主| 发表于 2010-11-27 19:04:19 | 显示全部楼层

这几天瞎摆弄总结出来的,说的不对请指正

这几天瞎摆弄总结出来的,说的不对请指正
http://echong.taobao.com 各类话费充值,请多支持!
回复

使用道具 举报

187

主题

2540

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14039
发表于 2010-11-27 19:17:15 | 显示全部楼层

prcs.free() 调不调用无所谓, 要调用,当然是你不再需要prcs的时候调用 prcs.free() 因为这个对象支持自动析构,你忘记调用,aa

prcs.free() 调不调用无所谓,
要调用,当然是你不再需要prcs的时候调用 prcs.free()

因为这个对象支持自动析构,你忘记调用,aardio也会自动调用的。
要了解更多可以看看process库源码,里面调用了gcdata创建析构对象。

-------------------------------------------

你后面说的就是 外挂输入,aardio提供大量的现成的外挂输入函数。
key.send() winex.say() winex.sayIme() winex.key.send() 太多了,范例里看一下。


回复

使用道具 举报

40

主题

565

帖子

3045

积分

新手入门

超级初学者

积分
3045
 楼主| 发表于 2010-11-27 19:43:41 | 显示全部楼层

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=838&ptid=131][color=Olive]ja

回复 jacen 的帖子

谢谢回答,原来prcs.free()不是必须的。
构造和析构之类的现在看起来很吃力。
一边写一边试验
http://echong.taobao.com 各类话费充值,请多支持!
回复

使用道具 举报

0

主题

2

帖子

132

积分

一级会员

Rank: 2

积分
132
发表于 2011-11-28 16:05:52 | 显示全部楼层

这个好像可以

这个好像可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2019-12-10 06:27 , Processed in 0.078125 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表