liulong1567 发表于 2013-11-19 08:34:16

求助:如何用键盘模拟鼠标长按效果【已解决】

本帖最后由 liulong1567 于 2013-11-19 20:12 编辑

我设置了一个热键,比如:F1键。我想实现点击F1键就是点击鼠标左键的效果。于是我就写了一句话:HotKeySet("{F1}", "OnMouseLeft"),可是这样实现不了鼠标长按效果。如果我一直按住F1键,就会连续响应OnMouseLeft函数,而这不是我想要的。

有谁会这个技术? 指教指教吧

xjdjpbp 发表于 2013-11-19 08:41:40

MouseClickDownDelay        更改在松开按键之前按住按钮的时间长度.
以毫秒为单位(默认值 = 10).


Opt('MouseClickDownDelay' , 1000) ;按住按钮1秒

komaau3 发表于 2013-11-19 09:22:29

MouseDown("left")
Sleep(5000)
MouseUp("left")

zldfsz 发表于 2013-11-19 18:55:40

本帖最后由 zldfsz 于 2013-11-19 18:58 编辑

#include <Misc.au3>
HotKeySet("{F1}", "OnMouseLeft")
While 1
        Sleep(1)
        If _IsPressed("1B") Then ExitLoop;ESC键退出
WEnd
Func OnMouseLeft()
        If _IsPressed("70") Then
                HotKeySet("{F1}")
                MouseDown("left")
                While _IsPressed("70")
                        Sleep(1)
                WEnd
                MouseUp("left")
        EndIf
        Sleep(1)
        HotKeySet("{F1}", "OnMouseLeft")
EndFunc   ;==>OnMouseLeft

liulong1567 发表于 2013-11-19 20:10:22

回复 4# zldfsz


    大神呀,要的就是这个效果,这代码之清晰、这流程之精炼、这效果之满意,让我十分佩服。感谢感谢呀!!!!!

zldfsz 发表于 2013-11-19 21:44:40

回复 5# liulong1567
其实这是帮助文件里面的代码,我就修改一下就这样了

liulong1567 发表于 2013-11-20 10:59:46

回复 6# zldfsz


    大神:你这个代码我调试了一下,可以达到我想要的的效果,可是有一点不好的是:假如我设置了A键为模拟鼠标左键效果,但是在一直按住键盘A键的时候,还是会向系统发送点击A键消息,如何才能不发送按键消息只发送鼠标消息呢?等待您的回复,这问题我昨晚想了好久没有结果呢
页: [1]
查看完整版本: 求助:如何用键盘模拟鼠标长按效果【已解决】