控制其他程序按钮??

优效soft 2011-05-23 11:30:32
我想写个程序控制其他程序的按钮,但是目标程序每次启动后系统给按钮分配的句柄都是不同的,所以保存句柄好像是行不通的。该怎么办?????
...全文
530 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
WHFABC 2012-06-17
  • 打赏
  • 举报
回复
good idea
优效soft 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ulihss 的回复:]

控制按钮?
可以把问题说得具体点不??
你要实现一个什么?
[/Quote]
就是给按钮发送消息,点击按钮的功能。
kingdom_0 2011-05-23
  • 打赏
  • 举报
回复
我好像不会,帮顶。
Kobayashi 2011-05-23
  • 打赏
  • 举报
回复
控制按钮?
可以把问题说得具体点不??
你要实现一个什么?
优效soft 2011-05-23
  • 打赏
  • 举报
回复
都来看看!!!!!
优效soft 2011-05-23
  • 打赏
  • 举报
回复
那对象窗口拉伸,缩放了还能行吗?
没用过按键精灵。
我比较期待hText = GetDlgItem(hMyWnd,IDC_DATA_TXT);
呵呵
你继续努力,我得下班了。

这个我早料到了,那就是录制操作时记录窗体大小以及位置,要控制的时候按配置设置窗体的大小及位置即可。
dreamrising 2011-05-23
  • 打赏
  • 举报
回复
问题不错,留名
ghost5216 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 dly_yx 的回复:]
不太明白你的意思,我让你通过资源编辑器,取得ID,你怎么说到枚举上了。
那就接着你的说。
你得到panel是很正常的。
人家做软件的时候一定方了panel,因为好布局么。
在panel里放的才有可能是按钮,
你第一此掉GetChildWindow得到的是panle
你在用panel作为父窗体调用GetChildWindow就可以枚举到了啊。
递归
我用的就是递归,但是就是找不到bu……
[/Quote]
那对象窗口拉伸,缩放了还能行吗?
没用过按键精灵。
我比较期待hText = GetDlgItem(hMyWnd,IDC_DATA_TXT);
呵呵
你继续努力,我得下班了。
优效soft 2011-05-23
  • 打赏
  • 举报
回复
我想通过录制操作来控制窗体按钮会比原来那个方案灵活多了,大家觉得呢!
优效soft 2011-05-23
  • 打赏
  • 举报
回复
不太明白你的意思,我让你通过资源编辑器,取得ID,你怎么说到枚举上了。
那就接着你的说。
你得到panel是很正常的。
人家做软件的时候一定方了panel,因为好布局么。
在panel里放的才有可能是按钮,
你第一此掉GetChildWindow得到的是panle
你在用panel作为父窗体调用GetChildWindow就可以枚举到了啊。
递归
我用的就是递归,但是就是找不到button。
所以我觉得用这个办法控制窗体控件不通用。不过我又想到了另一个解决方案,那就是通过录制操作来控制,就跟按键精灵那样。
ghost5216 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 dly_yx 的回复:]
引用 25 楼 ghost5216 的回复:

房主评价下我20楼的看法,有什么不妥。

嗯 对啊 好像用这种方法控制其他程序的窗口不好用,例如我枚举酷狗的所有控件,结果出现的都是panel控件,根本就找不到button,还以为是自己枚举程序有问题,用UISpy.exe试下也一样。
不知道有没有其他更好的办法。
[/Quote]
房主评价下我20楼的看法,有什么不妥。


不太明白你的意思,我让你通过资源编辑器,取得ID,你怎么说到枚举上了。
那就接着你的说。
你得到panel是很正常的。
人家做软件的时候一定方了panel,因为好布局么。
在panel里放的才有可能是按钮,
你第一此掉GetChildWindow得到的是panle
你在用panel作为父窗体调用GetChildWindow就可以枚举到了啊。
递归
优效soft 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 ghost5216 的回复:]

房主评价下我20楼的看法,有什么不妥。
[/Quote]
嗯 对啊 好像用这种方法控制其他程序的窗口不好用,例如我枚举酷狗的所有控件,结果出现的都是panel控件,根本就找不到button,还以为是自己枚举程序有问题,用UISpy.exe试下也一样。
不知道有没有其他更好的办法。
ghost5216 2011-05-23
  • 打赏
  • 举报
回复
房主评价下我20楼的看法,有什么不妥。
优效soft 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 isjoe 的回复:]

引用 18 楼 dly_yx 的回复:
其实现在的问题就是控件是否有一个固定的属性,就是每次启动都是同一个值。只要找到它就好了。


用spy++探测,控件有类名的,相同的控件有相同的类名
另外通过GetDlgCtrlID取得的id,在相同的千千静听版本中是绝对不会改变的,
通常版本换了改变的可能性也很小。。。
你可以通过保留此ID,用来识别它们。
通常用这种方法控制人家的窗口,……
[/Quote]
嗯 对啊 好像用这种方法控制其他程序的窗口不好用,例如我枚举酷狗的所有控件,结果出现的都是panel控件,根本就找不到button,还以为是自己枚举程序有问题,用UISpy.exe试下也一样。
不知道有没有其他更好的办法。
PerDign 2011-05-23
  • 打赏
  • 举报
回复
帮忙顶 拿分走人
isjoe 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 dly_yx 的回复:]
其实现在的问题就是控件是否有一个固定的属性,就是每次启动都是同一个值。只要找到它就好了。
[/Quote]

用spy++探测,控件有类名的,相同的控件有相同的类名
另外通过GetDlgCtrlID取得的id,在相同的千千静听版本中是绝对不会改变的,
通常版本换了改变的可能性也很小。。。
你可以通过保留此ID,用来识别它们。
通常用这种方法控制人家的窗口,你必须非常了解它才行
优效soft 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 51crack 的回复:]

引用楼主 dly_yx 的回复:
我想写个程序控制其他程序的按钮,但是目标程序每次启动后系统给按钮分配的句柄都是不同的,所以保存句柄好像是行不通的。该怎么办?????

引用 18 楼 dly_yx 的回复:
其实现在的问题就是控件是否有一个固定的属性,就是每次启动都是同一个值。只要找到它就好了。

你已经知道了每次不同,怎么可能还会有固定的属性?!
[/Quote]
对于句柄来说每次是不同的,但对于有些属性却是相同的,例如Text
ghost5216 2011-05-23
  • 打赏
  • 举报
回复
我也很想知道答案。
帮楼主顶吧!
以下纯猜测想象:
第一要得到控件的ID,因为控件是资源,它是编译时就已经存在的了。
比如 #define IDC_DATA_TXT 1001
1001是在编译时确定的,不是运行时,所以它是固定的。
第二得到控件所在窗体的句柄FindWindow得不到,你可以通过进程名,那个一定是固定的。
第三hText = GetDlgItem(hMyWnd,IDC_DATA_TXT);得到句柄
IDC_DATA_TXT是你第一得到的ID,hMyWnd是第二得到的窗体句柄。
第四有了hText 你可发消息。

我记得有写资源编辑器可以得到第一里提到的ID

纯想象
51Crack 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 dly_yx 的回复:]
我想写个程序控制其他程序的按钮,但是目标程序每次启动后系统给按钮分配的句柄都是不同的,所以保存句柄好像是行不通的。该怎么办?????
[/Quote]
[Quote=引用 18 楼 dly_yx 的回复:]
其实现在的问题就是控件是否有一个固定的属性,就是每次启动都是同一个值。只要找到它就好了。
[/Quote]
你已经知道了每次不同,怎么可能还会有固定的属性?!
优效soft 2011-05-23
  • 打赏
  • 举报
回复
其实现在的问题就是控件是否有一个固定的属性,就是每次启动都是同一个值。只要找到它就好了。
加载更多回复(13)
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity——Intent对象的使用 3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞——setOnKeyListener事件 4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理 4.3 给耶诞老人的信息——Toast对象的使用 4.4 我同意条款——CheckBox的isChecked属性 4.5 消费券采购列表——多选项CheckBox的应用 4.6 向左或向右——RadioGroup组与onCheckedChanged事件 4.7 专业相框设计——ImageView的堆栈应用 4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource 4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用 4.18 动态文字排版——GridView与ArrayAdapter设计 4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧