wangwen916 发表于 2010-8-20 19:15:47

鼠标热键设置....类似键盘的HOTKEY[已解决]

本帖最后由 wangwen916 于 2010-8-20 22:33 编辑

要做到程序运行后,点鼠标右键,立马显示"hello,world!",1S后窗口消失,继续等待右键.

参考: WM_RBUTTONDBLCLK
我不会用他,请高手指点,谢谢!

jhun 发表于 2010-8-20 19:40:31

用WM_RBUTTONDBLCLK的话代码太长,我偷偷懒送你个简单的吧#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("", 137, 84, 192, 124)
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $GUI_EVENT_SECONDARYDOWN
                        MsgBox(0,"","hello,world!",1)
        EndSwitch
WEnd

水木子 发表于 2010-8-20 19:44:35

回复 2# jhun
如果没有GUI的情况下呢?

wangwen916 发表于 2010-8-20 19:46:03

谢谢楼上的,补充一句,要鼠标在任意位置点右键都可以,你的代码只有在控件上才有效果...再帮忙想想办法...

lanfengc 发表于 2010-8-20 19:49:01

_ispressed 这个函数可以。

wangwen916 发表于 2010-8-20 19:56:31

回4楼#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
    Sleep ( 250 )
    If _IsPressed("02", $dll) Then
      MsgBox(0,"_IsPressed", "End Key Pressed",1)
      ;ExitLoop
    EndIf
WEnd
DllClose($dll)这样的话,右键如果是点击,程序检测不到,按下右键的话,还是可以的...再想想办法,谢谢!

jhun 发表于 2010-8-20 20:04:35

回复 3# 水木子


    不好意思,理解错误LZ的意思,我以为是在GUI上面的右键
没GUI的话就只有拦截消息了

xyold1 发表于 2010-8-20 20:41:21

回复 6# wangwen916


    sleep设小一点,比如10,5,点击照样能检测到

wangwen916 发表于 2010-8-20 22:32:10

#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
    ;Sleep ( 250 )
    If _IsPressed("02", $dll) Then
      MsgBox(0,"_IsPressed", "End Key Pressed",1)
      ;ExitLoop
    EndIf
WEnd
DllClose($dll)谢谢楼上提示,把SLEEP关了,已经解决...

3mile 发表于 2010-8-20 22:53:35

回复 9# wangwen916

禁用SLEEP?等着CPU占用率狂飙吧。
至少也应该SLEEP(10)啊。
最好还是拦截消息吧。

wangwen916 发表于 2010-12-6 15:36:47

回复 10# 3mile
基本的 消息循环 结构
下面是 消息循环 的基本结构代码:

While 1
$msg = GUIGetMsg()
...
...
WEnd



像上面这种循环周期非常短的脚本通常会把CPU占用推到高达 100%,幸运的是 GUIGetMsg 函数可在无事件等待时自动闲置CPU.另外千万 不要 因为怕增加CPU压力而自己添加休眠语句(Sleep)到脚本中,这么做只会让GUI响应迟钝.

帮助文件中的一句话.应该引起楼上的重视....谢谢鼓掌!

3mile 发表于 2010-12-6 17:42:45

回复 11# wangwen916
关键是你有使用GUIGetMsg 函数吗?

wangwen916 发表于 2011-3-7 10:24:01

#include <MouseOnEvent.au3>
终于找到这个函数就可以了

menfan1 发表于 2011-3-16 10:10:59

右键菜单啊
页: [1]
查看完整版本: 鼠标热键设置....类似键盘的HOTKEY[已解决]