发表回复 
哪些热键不会装钩子?
2014-10-02, 21 : 11 (这个帖子最后修改于: 2014-10-03 09 : 22 by June.)
哪些热键不会装钩子?
想找几个不用装钩子的热键,避免360报警告。似乎有点难
好像所有的热键都要装钩子...
引用手册解释:
k-hook: 此热键是使用 键盘钩子 实现的.

测试结果
代码: (全选)
Type    Off?    Running    Name
-------------------------------------------------------------------
k-hook           1          f3
k-hook                       f
k-hook                      !f
k-hook                      ^f
k-hook                      #f

测试代码
代码: (全选)
#UseHook off  ;不能使用 RegisterHotkey() 时才使用键盘钩子实现热键
f3::
ListHotkeys
return
f::
!f::
^f::
#f::
^f3::
#Numpad1::
#^Numpad1::

本帖对应论坛QA: 能移除AHK的记录键盘鼠标历史功能吗?
关键词:热键 钩子
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢June
2014-10-02, 21 : 25 (这个帖子最后修改于: 2014-10-03 19 : 32 by robertL.)
Smile 注册表热键 钩子热键 V1.4
不知道..还真没留意过..
  • 测试
    • 我这30~40个热键,就3个不是钩子的。
      折叠块: Hotkeys and their methods
      ;XP SP3
      reg #^Numpad1
      reg #Numpad1
      reg ^F13
      ;以下是钩子热键,选出来便于对照
      k-hook #q
      k-hook a
      k-hook 8
      台式机键盘,实际无F13
    • 我这用你的代码。
      • 条件:后台其他包含热键的脚本。
        折叠块: 结果
        reg f3
        reg f
        reg !f
        reg ^f
        k-hook #f
        k-hook ^f3
        k-hook #Numpad1
        k-hook #^Numpad1
        和我以上的结果都不同了(如,#Numpad1
      • 条件:后台其他包含热键的脚本。
        折叠块: 结果
        reg f3
        reg f
        reg !f
        reg ^f
        k-hook #f
        k-hook ^f3
        reg #Numpad1
        reg #^Numpad1
  • 分析
    • 任何RegisterHotkey注册表不支持的情况,或者,其他复杂情况(如下)都会导致自动使用Hook钩子热键。
    • 可能,不同脚本的相同热键间有影响。
      也许,最先定义的热键为Reg,其后的同名热键为Hook
      即,你后台还有其他脚本,定义了同名热键。
    • 定义修饰键做普通热键,也许会导致所有用到此修饰键的组合键都变成Hook。
    • 折叠块: 其他猜测,不准确
      这么看来,也许能反查,注册表热键支持的范围(这么一想,应该很窄才对,比如,快捷方式属性中可以指定热键)
  • 参考
    • 手册索引KeyHistoryListHotkeys#InstallKeybdHook#UseHook
    • #UseHook 提到:一般情况下, 只要可能都会用 windows API 函数 RegisterHotkey() 来实现键盘热键. 不过在一些情况下, 如果使用 键盘钩子 可能响应性更好.
      #UseHook 提到:Off:用默认方法(不能使用 RegisterHotkey() 时才使用键盘钩子)实现热键。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-02, 21 : 36
RE: 哪些热键不会装钩子?
(2014-10-02 21 : 25)robertL 提到:  不知道..还真没留意过..
  • 我这30~40个热键,就3个不是钩子的。
    折叠块: Hotkeys and their methods
    reg #^Numpad1
    reg #Numpad1
    reg ^F13
    ;以下是钩子热键,选出来便于对照
    k-hook #q
    k-hook a
    k-hook 8
  • 这么看来,也许能反查,注册表热键支持的范围(这么一想,应该很窄才对,比如,快捷方式属性中可以指定热键)
  • 参考:手册索引KeyHistoryListHotkeys#InstallKeybdHook

我测试后发现这三个都是k-hook,这是什么原因...
代码: (全选)
k-hook   #^Numpad1
k-hook   #Numpad1
k-hook   ^F13
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-02, 21 : 42 (这个帖子最后修改于: 2014-10-02 21 : 44 by robertL.)
Smile 不一致 系统原因?
  • June 提到:我测试后发现这三个都是k-hook,这是什么原因...
    系统原因?(我XP SP3,已补充至2#)
  • 你有注册表热键的吗,我也试试?
  • #UseHook 提到:一般情况下, 只要可能都会用 windows API 函数 RegisterHotkey() 来实现键盘热键. 不过在一些情况下, 如果使用 键盘钩子 可能响应性更好.
    (已补充至2#)
    手册没查到相关说明,看来有好大一片空白知识..

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 09 : 48
RE: 哪些热键不会装钩子?
(2014-10-02 21 : 42)robertL 提到:  
  • 系统原因?(我XP SP3,已补充至2#)
  • 你有注册表热键的吗,我也试试?
  • #UseHook 提到:一般情况下, 只要可能都会用 windows API 函数 RegisterHotkey() 来实现键盘热键. 不过在一些情况下, 如果使用 键盘钩子 可能响应性更好.
    (已补充至2#)
    手册没查到相关说明,看来有好大一片空白知识..

使用#UseHook off 测试后,结果是k-hook。
系统:XP Professional 版本2002 Service Pack 3
安装AHK版本不一样,效果也会不一样么?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 11 : 07 (这个帖子最后修改于: 2014-10-03 11 : 10 by robertL.)
RE: June 版本 #UseHook
June dateline='' 提到:  使用#UseHook off 测试后,结果是k-hook。
系统:XP Professional 版本2002 Service Pack 3
安装AHK版本不一样,效果也会不一样么?
  • 感觉和#UseHook off关系不大..
    #UseHook 提到:Off:用默认方法(不能使用 RegisterHotkey() 时才使用键盘钩子)实现热键。
  • 我 提到:你有成功的注册表热键的吗,我也试试?
  • 我AHK版本V1.1.16.05。

(已补充至2#)

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 14 : 00
RE: 哪些热键不会装钩子?
@robertL 我AHK版本v1.1.14.03,去官网更新111605后测试。均为k-hook。
按键测试没全部试过,把同类按键都试了(英文区,数字区等),没发现非k-hook(钩子)按键。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 14 : 15 (这个帖子最后修改于: 2014-10-03 14 : 25 by robertL.)
Smile RE: June 360 台式机键盘 V1.1
  • June dateline='' 提到:  去官网更新111605后测试。均为k-hook。
    按键测试没全部试过,把同类按键都试了(英文区,数字区等),没发现非k-hook(钩子)按键。
    晕,太奇怪了..
    那你把360之类的停了,关了,再试呢?(比如,360禁止注册表热键,以便自己监控其他热键工具?)
  • 我 提到:reg #^Numpad1
    reg #Numpad1
    reg ^F13
    June 提到:我测试后发现这三个都是k-hook,这是什么原因...
    其中倒是有点特别,我是台式机键盘(有小键盘),而且无F13键。

    再试试,不行我到官网问一下..

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 18 : 57 (这个帖子最后修改于: 2014-10-03 19 : 01 by June.)
RE: 哪些热键不会装钩子?
(2014-10-03 14 : 15)robertL 提到:  
  • June dateline='' 提到:  去官网更新111605后测试。均为k-hook。
    按键测试没全部试过,把同类按键都试了(英文区,数字区等),没发现非k-hook(钩子)按键。
    晕,太奇怪了..
    那你把360之类的停了,关了,再试呢?(比如,360禁止注册表热键,以便自己监控其他热键工具?)
  • 我 提到:reg #^Numpad1
    reg #Numpad1
    reg ^F13
    June 提到:我测试后发现这三个都是k-hook,这是什么原因...
    其中倒是有点特别,我是台式机键盘(有小键盘),而且无F13键。

    再试试,不行我到官网问一下..

关了360测试结果一样,没留意那个F13,我用的是F3测试,#1更新了代码
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢June
2014-10-03, 19 : 21 (这个帖子最后修改于: 2014-10-03 19 : 36 by robertL.)
RE: 同名热键 修饰键做普通热键 V1.1
发现疑点了!
我 提到:更新到2#楼
  • 可能,不同脚本的相同热键间有影响。
    也许,最先定义的热键为Reg,其后的同名热键为Hook
    即,你后台还有其他脚本,定义了同名热键。
  • 定义修饰键做普通热键,也许会导致所有用到此修饰键的组合键都变成Hook。

感觉是这个原因了...不过360的问题,你继续想办法吧...
先就这么盖吧..最后我小结下...
不过我记录的有用的东西,都在2#了,组织下就行了...

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 20 : 39
RE: 哪些热键不会装钩子?
(2014-10-03 19 : 21)robertL 提到:  发现疑点了!
我 提到:更新到2#楼
  • 可能,不同脚本的相同热键间有影响。
    也许,最先定义的热键为Reg,其后的同名热键为Hook
    即,你后台还有其他脚本,定义了同名热键。
  • 定义修饰键做普通热键,也许会导致所有用到此修饰键的组合键都变成Hook。

感觉是这个原因了...不过360的问题,你继续想办法吧...
先就这么盖吧..最后我小结下...
不过我记录的有用的东西,都在2#了,组织下就行了...
测试时没有使用其他脚本,只存在f::这个脚本..
单独f键也会装钩子..
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 20 : 53
RE: June 其他程序影响?
June 提到:  测试时没有使用其他脚本,只存在f::这个脚本..
单独f键也会装钩子..
呃...是不是由于别的程序占用了Reg热键(比如鼠标手势软件,使得AHK的鼠标热键都变成m-Hook了)
反正是出现了‘复杂’情况..所以,AHK自动判断,不得不使用Hook了..

我简单情况下,好像都是Reg热键了..

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 21 : 22
RE: 哪些热键不会装钩子?
(2014-10-03 20 : 53)robertL 提到:  
June 提到:  测试时没有使用其他脚本,只存在f::这个脚本..
单独f键也会装钩子..
呃...是不是由于别的程序占用了Reg热键(比如鼠标手势软件,使得AHK的鼠标热键都变成m-Hook了)
反正是出现了‘复杂’情况..所以,AHK自动判断,不得不使用Hook了..

我简单情况下,好像都是Reg热键了..

手册有强制使用钩子的命令...有相反的命令么?(强制禁止钩子的命令)
鼠标我也试了下..也要钩子。好像是所有键都要钩子....
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-03, 21 : 25 (这个帖子最后修改于: 2014-10-03 21 : 28 by robertL.)
RE: 哪些热键不会装钩子?
June 提到:有相反的命令么?(强制禁止钩子的命令)
鼠标我也试了下..也要钩子。好像是所有键都要钩子....
不记得有相反的命令
按手册的解释,是,必要时才使用钩子(如,Reg已被占用,或Reg不支持)

没其他脚本或者其他软件干扰?我觉得是这个原因了...
或者,不是键盘有啥特殊吧...

找找软件,查看已分配热键的情况。AHK写的也该有,我没留意。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-10-04, 18 : 15
RE: 哪些热键不会装钩子?
(2014-10-03 21 : 25)robertL 提到:  
June 提到:有相反的命令么?(强制禁止钩子的命令)
鼠标我也试了下..也要钩子。好像是所有键都要钩子....
不记得有相反的命令
按手册的解释,是,必要时才使用钩子(如,Reg已被占用,或Reg不支持)

没其他脚本或者其他软件干扰?我觉得是这个原因了...
或者,不是键盘有啥特殊吧...

找找软件,查看已分配热键的情况。AHK写的也该有,我没留意。
重新测试,用快捷键占用工具查看热键占用,清理后。找到reg的热键F
360对reg的热键F报警告是否阻止。阻止后reg的热键F会失效。
reg的热键,360也报警告,不是钩子问题了...

附带说明:360报警告即使阻止了,只要ListHotkeys一启动,
热键照样生效不受影响...。

附上工具:Windows Hotkey Explorer(查看快捷键占用工具)
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢June
2014-10-05, 11 : 47
RE: 哪些热键不会装钩子?
June 提到:附带说明:360报警告即使阻止了,只要ListHotkeys一启动,
热键照样生效不受影响...。
看来360也只是做个样子..
ListHotkeys这个条件好奇怪..
不管了,先这样吧..

June 提到:Windows Hotkey Explorer(查看快捷键占用工具)
谢谢分享。
已收录至推荐的精品资源小工具

One for all, but man for himself

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


论坛跳转:


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