发表回复 
【已解决】chm界面中如何使用sendmesage获取消息?
2015-07-16, 10 : 55 (这个帖子最后修改于: 2015-07-20 08 : 51 by zhanglei1371.)
【已解决】chm界面中如何使用sendmesage获取消息?
在chm中,假如要单击搜索标签,用什么工具能获取点击标签时的消息?

如下图,假如想用sendmessage来实现类似点击的效果,该如何操作?如何获取消息类型?参数?
[Image: 2147fah.png]
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-07-17, 21 : 42 (这个帖子最后修改于: 2015-07-17 21 : 42 by tmplinshi.)
RE: chm界面中如何使用sendmesage获取消息?
以下示例代码来自帮助文件中的 Control 命令:
代码: (全选)
; 把代码中的 5 换成你要切换到的标签位置,以及修改 WinTitle。
SendMessage, 0x1330, 5,, SysTabControl321, WinTitle  ; 0x1330 is TCM_SETCURFOCUS.
Sleep 0  ; This line and the next are necessary only for certain tab controls.
SendMessage, 0x130C, 5,, SysTabControl321, WinTitle  ; 0x130C is TCM_SETCURSEL.
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢tmplinshi
2015-07-19, 06 : 38
RE: chm界面中如何使用sendmesage获取消息?
(2015-07-17 21 : 42)tmplinshi 提到:  以下示例代码来自帮助文件中的 Control 命令:
代码: (全选)
; 把代码中的 5 换成你要切换到的标签位置,以及修改 WinTitle。
SendMessage, 0x1330, 5,, SysTabControl321, WinTitle  ; 0x1330 is TCM_SETCURFOCUS.
Sleep 0  ; This line and the next are necessary only for certain tab controls.
SendMessage, 0x130C, 5,, SysTabControl321, WinTitle  ; 0x130C is TCM_SETCURSEL.
大师,我就是想知道通过何种方法来获取后面的参数,比如何种软件,大致的操作,能否解答下,非常感谢
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-07-19, 15 : 02
RE: chm界面中如何使用sendmesage获取消息?
用 AutoHotkey 自带的工具 AU3_Spy.exe 可以获取窗口、控件等信息。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-07-19, 15 : 57
RE: chm界面中如何使用sendmesage获取消息?
(2015-07-19 15 : 02)tmplinshi 提到:  用 AutoHotkey 自带的工具 AU3_Spy.exe 可以获取窗口、控件等信息。
我想知道0x1330, 5和0x130C, 5是如何获得的,其他的我都知道
代码: (全选)
SendMessage, 0x1330, 5,, SysTabControl321, WinTitle  ; 0x1330 is TCM_SETCURFOCUS.
Sleep 0  ; This line and the next are necessary only for certain tab controls.
SendMessage, 0x130C, 5,, SysTabControl321, WinTitle  ; 0x130C is TCM_SETCURSEL.
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-07-19, 18 : 14 (这个帖子最后修改于: 2015-07-19 18 : 14 by tmplinshi.)
RE: chm界面中如何使用sendmesage获取消息?
思路是这样的:碰到这个问题时,首先在搜索引擎中搜索“如何切换Tab”等关键词,然后你就能看到别人回答说用 TCM_SETCURFOCUS,答案里一般也会出现 TCM_SETCURFOCUS 的消息值以及示例代码。如果没有的话,那可以去搜索 TCM_SETCURFOCUS 的用法说明,以及 TCM_SETCURFOCUS 的消息值。搜索消息值用 constant 关键词比较好找,例如 TCM_SETCURFOCUS constant
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 2用户表示感谢tmplinshi
2015-07-20, 08 : 51
RE: chm界面中如何使用sendmesage获取消息?
(2015-07-19 18 : 14)tmplinshi 提到:  思路是这样的:碰到这个问题时,首先在搜索引擎中搜索“如何切换Tab”等关键词,然后你就能看到别人回答说用 TCM_SETCURFOCUS,答案里一般也会出现 TCM_SETCURFOCUS 的消息值以及示例代码。如果没有的话,那可以去搜索 TCM_SETCURFOCUS 的用法说明,以及 TCM_SETCURFOCUS 的消息值。搜索消息值用 constant 关键词比较好找,例如 TCM_SETCURFOCUS constant

谢谢。我也思考过这样。
之前一直想找个能探测到windows消息的最强软件,后来找到了spy++,对于探测0x111的消息没有问题。几乎是同类软件中的佼佼者。
但是后来遇到了些不好使的情况:office产品。我想通过sendmessage去解决excel中文本框字体放大和缩小的问题。这个vba是做不到的。
称在EH论坛上发帖求助过,竟然有二货说让我去学习C和五六百页的window编程,我需要知道的就是这么一个东西却让我去花大精力去学习一个全新的领域,真不知回答者是​怎么想的。
在尝试探测excel的消息后,发现spy++确实能探测到不少信息。但多是一些不沾边的消息,动辄就数百个。这对于探索目标消息无异于海底捞针。原来spy++并非是万​能的。
对于chm这个消息,其无论如何是探测不到的。当然,通过百度搜索是最后的解决方案了。可是有些假如百度上收不到(一个全新的软件,前人没有研究过的东西),spy++也​探测不到的话,也许就真的无解了。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-07-20, 10 : 43
RE: 【已解决】chm界面中如何使用sendmesage获取消息?
软件内部不一定是标准的Windows消息机制,即便是,检测到的一堆消息,也不一定能筛选出需要的,即便找到,消息中传递的参数可能也无法简单观察模拟。
@tmplinshi 的意思是找控件的说明文档。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合