VC++中如何获得一个已知窗口的所有控件的ID树

tianxuexuankui 2013-10-09 10:22:38
如题,希望大家给出一个能够像android中viewserver工具那样,能够查询控件树的工具。或者是能够遍历出ID的VC++代码也可以,最好是MFC的。多谢
...全文
519 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxuexuankui 2014-03-03
  • 打赏
  • 举报
回复
虽然没有太满意的答案,还是感谢大家的热心回复。结贴了
buyong 2013-10-31
  • 打赏
  • 举报
回复
你有exe文件的话,直接用vc打开,资源里ID随便看
unituniverse2 2013-10-19
  • 打赏
  • 举报
回复
引用 8 楼 tianxuexuankui 的回复:
7楼能说得详细些么?
具体就是,窗口句柄保证是进程内唯一的(实际上目前是一个桌面唯一的),但是资源id实际上是任意的且不必唯一,貌似0和1保留以外这个数值可以随便定,一个窗口的子窗口可以有多个拥有相同的资源id,id和窗口不一定是一一对应的。
tianxuexuankui 2013-10-18
  • 打赏
  • 举报
回复
7楼能说得详细些么?
tianxuexuankui 2013-10-09
  • 打赏
  • 举报
回复
自己顶,我换一个比较具体的问题.就是如果我知道一个窗口的句柄,怎么在没有源代码的情况下通过代码或者工具知道,里面的某一个控件的ID.或者是在不知道控件ID的情况下又没有可能去控制整个控件呢,比如点击某一个按钮
unituniverse2 2013-10-09
  • 打赏
  • 举报
回复
获取到句柄以后可以用GetWindowLongPtr(hwnd, GWLP_ID)获取每个控件的id,但是需要提醒你的是不同窗口的id是可以相同的,不像句柄
unituniverse2 2013-10-09
  • 打赏
  • 举报
回复
用GetWindow,先用GW_CHILD标志获取子窗口,返回的将是第一个子窗口的句柄,再用GW_HWNDNEXT和那个句柄一个个句柄的遍历到返回NULL为止。
赵4老师 2013-10-09
  • 打赏
  • 举报
回复
FindWindow FindWindowEx
赵4老师 2013-10-09
  • 打赏
  • 举报
回复
spy4win
tianxuexuankui 2013-10-09
  • 打赏
  • 举报
回复
二楼,SPY那个工具只能够得到窗口标题和类名吧.好像得不到控件树.
buyong 2013-10-09
  • 打赏
  • 举报
回复
spy++ tool

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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