leon460 发表于 2011-4-6 20:54:32

请问如何使用hotkeyset

本帖最后由 leon460 于 2011-4-7 09:30 编辑

HotKeySet("to","te")
$i=1
Do
        Sleep(10)
Until $i=0       

Func te()
        ShellExecute("C:\Program Files\Tencent\QQ\Bin\QQ.exe")
EndFunc

我想同时安装 字母t和字母o一秒 才运行 te()函数,请问,怎么写?
我知道_IsPresse可以 定义几个字母同时按的,但是我不知道hotkeyset 和 _IsPressed 的中断效果是否一样?

谢谢

xyold1 发表于 2011-4-6 21:11:17

在AU3里,hotkey不能这样用吧,修饰键只能是ctrlshift 和alt,AHK里倒是有这样的热键设置

kadingxiaodi 发表于 2011-4-6 21:39:51

学习一下,学习一下

leon460 发表于 2011-4-7 15:47:49

自己顶下,希望遇到这样情况的人给我帮助,谢谢

yhxhappy 发表于 2011-4-7 17:53:52

下面算是一个笨办法吧#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
        Sleep(250)
        If _IsPressed("54", $dll) And _IsPressed("4F", $dll) Then
                Local $time = 0
                While 1
                        If $time = 1000 Then
                                ToolTip("")
                                MsgBox(262144, "_IsPressed", "两个键按了一秒钟")
                                ;这里写你想运行的脚本
                                DllClose($dll)
                                Exit
                        EndIf
                        If _IsPressed("54", $dll) = 0 Or _IsPressed("4F", $dll) = 0 Then ExitLoop
                        Sleep(100)
                        $time += 100
                WEnd
        EndIf
        ToolTip("同时按下“t”和“o” 1 秒钟试试")
WEnd

leon460 发表于 2011-4-8 10:49:14

回复 5# yhxhappy

感谢您的帮助,我不知道hotkeyset 的中断优先级别是否和 _IsPressed 一样的?

飘云 发表于 2011-4-8 13:23:14

hotkeyset是有局限性的,比如已经被别的软件注册的热键使用它再注册是无效的,另外有些程序,比如某游戏,是会屏蔽大部分热键响应的,可能是用了什么hook吧,但是_IsPressed不同,这个函数只是检测用户是否按下了指定键罢了,并不算在热键上,所以可以在已有热键的情况下工作

xz00311 发表于 2011-4-8 13:27:48

HotKeySet("F1","te")

leon460 发表于 2011-4-10 19:27:21

回复 8# xz00311

呜呜,不会吧,这么简单,,你没有看完整我的问题哦

love5173 发表于 2011-4-13 15:17:39

回复 9# leon460
直接这么写是不可以的,你可以把热键设置在T上 当T被按下时,调用另一个函数,此函数判断你是否同时按下T&O 1秒,如果真 则调用te()否则什么都不做
页: [1]
查看完整版本: 请问如何使用hotkeyset