TC官方合作论坛

 找回密码
 立即注册
查看: 2243|回复: 5

[问题] 恐怕这TC坛子没人解得了?子线程为何不能开启钩子子程?

[复制链接]
发表于 2018-1-18 14:13:37 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
重写了TC的MouseWaitClick函数,想实现首次调时,自行开启挂钩函数,即使调用者在子线程内。
可惜:在子线程1里调用 SetWindowsHookEx  死活都不行。 子程只是启用瞬间有反馈。 我恐怕这TC论坛没人解得了?
var ret =  dllcall("user32.dll", "long", "SetWindowsHookExW", "long", idHook, "callback", lpfn, "long", hMod, "long", dwThreadId)


原码附上, 新手有惊喜: 内附消息大全 。
回调函数1.rar (1.91 MB, 下载次数: 127)
回复

使用道具 举报

发表于 2018-1-19 16:25:00 | 显示全部楼层
直接用现成的命令吧,一般尽量少用这个。也不知道TC里面有没有bug
回复 支持 反对

使用道具 举报

发表于 2018-1-20 11:38:45 来自手机 | 显示全部楼层
安装钩子函数,得在UI界面_里面执行。如:
ui界面的按钮点击事件,
ui界面的热键事件。
在子线程中安装无效。

VS2013合集,VC++3013,也有这样的约定。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-21 20:40:06 | 显示全部楼层
剑仙十号 发表于 2018-1-20 11:38
安装钩子函数,得在UI界面_里面执行。如:
ui界面的按钮点击事件,
ui界面的热键事件。

1,你这个说法有链接吗?麻烦大神给一个看看。

2,其实在开始的那一瞬间,钩子子程是成功返回执行的,不过是由子线程执行的(这个就不是我的目的了,还是要由主线程安装执行)

3,有没有办法通过子线程注入到主线程来执行?
回复 支持 反对

使用道具 举报

发表于 2021-11-2 02:43:35 | 显示全部楼层
果然新手有惊喜啊
回复 支持 反对

使用道具 举报

发表于 2021-11-2 02:46:00 | 显示全部楼层
感谢 一直不知道怎么键盘钩子 键码 因为怎么按 lParam都是输出一样的... 原来要用地址取值来获取
在之前一个鼠标钩子的帖子了也看到了地址取值 不过以为是他自己写的功能 原来是系统功能哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-6 10:51 , Processed in 0.053691 second(s), 26 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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