发表回复 
如何把“双击右键”作为一个热键,而又不影响右键的功能?
2008-11-08, 20 : 49
如何把“双击右键”作为一个热键,而又不影响右键的功能?
如题,看了按两次ctrl的代码,修改ctrl为~RButton,如下:
~RButton::
If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 500)
msgbox,ok
Return

现在的问题是虽然实现了功能,但双击之后仍然弹出右键菜单。用起来不方便,想知道怎么实现单击右键是普通右键,双击右键可以可以作为热键,而又不弹出右键菜单?

谢谢回答,在线等待中...

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-08, 21 : 18
 
并不推荐这样的操作,如果照你所说的实现这个功能,必然导致单击右键菜单出现延迟,因为要等待确定是否双击才能弹出右键菜单。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-08, 21 : 26
 
1楼说的是个问题,可是如果要这样做,代码该怎么写呢?

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-08, 23 : 09
 
直接托管 右键 不要带 ~ 这个,不过必然的问题就是如果你单击右键想要弹出右键,那必须等待 0.5秒钟!
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-09, 09 : 09
 
引用:原帖由 BLooM2 于 2008-11-8 23:09 发表 [Image: back.gif]
直接托管 右键 不要带 ~ 这个,不过必然的问题就是如果你单击右键想要弹出右键,那必须等待 0.5秒钟!


呵呵,问BLooM2个菜鸟问题,”直接托管 右键“是什么意思?怎么实现?

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-09, 12 : 17
 
引用:原帖由 495991246 于 2008-11-9 09:09 发表 [Image: back.gif]



呵呵,问BLooM2个菜鸟问题,”直接托管 右键“是什么意思?怎么实现?

你去掉~就是
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-09, 13 : 42
 
引用:原帖由 ahpzf 于 2008-11-9 12:17 发表 [Image: back.gif]


你去掉~就是

去掉了之后,弹不出右键了

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-10, 21 : 28
 
效果还可以,延迟没我想象中那么严重。
引用:RButton::
    KeyWait, RButton    ;松开鼠标右键后才继续执行下面的代码
    keyWait, RButton, D T0.075  ;在 75 毫秒内等待再次按下鼠标右键,可以设置一个自己觉得适合的等待时间。

    If ErrorLevel ;如果超时,就是单击,否则就是双击
    {
        Click, Right
    }
    Else
    {
        MsgBox, 双击鼠标右键
    }
Return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢Jameson
2008-11-10, 23 : 14
 
这样是会和鼠标手势冲突的, 映射右键之后貌似就不能检测到右键按下不放的状态了.
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-11, 08 : 48
回复 8楼 Jameson 的帖子
谢谢jameson,我现在正在中和9L提出的问题

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-11, 09 : 48
 
引用:原帖由 495991246 于 2008-11-11 08:48 发表 [Image: back.gif]
谢谢jameson,我现在正在中和9L提出的问题

右键很重要,还是不要乱改了。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-11, 18 : 22
 
尝试中。。。。

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-14, 23 : 45
回复 9楼 okey3m 的帖子
可以加一个判断鼠标是否移动,如果移动就关闭热键,可以使用鼠标手势!
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-19, 19 : 31
 
太有用了,谢谢
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-11-20, 10 : 43
高,实在是高
学到东西了,看来关键时刻得多加判断才行啊!

梦幻软件天堂
人生R棋随1出招借力打力多而合1扬C避D奇L断金
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2008-12-03, 09 : 02
 
结贴吧,把它移动到已解决问题中去,我现在没用右键作为快捷键,但是学到东西了

我得代码基本上是改出来的
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2011-11-13, 19 : 21
 
双击右键运行程序 (不影响右键菜单,即右键菜单无延迟版本)
代码: (全选)
#Persistent
~RButton Up::
If ((A_PriorHotkey = A_ThisHotkey) and  (A_TimeSincePriorHotkey < 500))
   {
           Send,+{F10}
           ToolTip doubleclick
   }
return

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢hitman
2011-12-29, 08 : 53
 
学习中
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2011-12-29, 10 : 03
 
不论如何实现二楼Jameson所说的问题总是存在,应对方法有两种:
  • 在一段时间内等待第二次右键的按下,如果超时则弹出右键菜单,此时右键菜单会延迟;
  • 在第一次右键按下时即弹出右键菜单,此时双击也会弹出右键菜单。[/list:u]这两种方法前面都实现了,这里补充前一种方法的另外实现方式(来自帮助中Settimer页面):
    代码: (全选)
    ; 这种方法可以检测一次、两次和三次按下某个按键
    ; Example #3: Detection of single, double, and triple-presses of a hotkey. This
    ; allows a hotkey to perform a different operation depending on how many times
    ; you press it:
    #c::
    if winc_presses > 0 ; SetTimer already started, so we log the keypress instead.
    {
        winc_presses += 1
        return
    }
    ; Otherwise, this is the first press of a new series. Set count to 1 and start
    ; the timer:
    winc_presses = 1
    SetTimer, KeyWinC, 400 ; Wait for more presses within a 400 millisecond window.
    return

    KeyWinC:
    SetTimer, KeyWinC, off
    if winc_presses = 1 ; The key was pressed once.
    {
        Run, m:\  ; Open a folder.
    }
    else if winc_presses = 2 ; The key was pressed twice.
    {
        Run, m:\multimedia  ; Open a different folder.
    }
    else if winc_presses > 2
    {
        MsgBox, Three or more clicks detected.
    }
    ; Regardless of which action above was triggered, reset the count to
    ; prepare for the next series of presses:
    winc_presses = 0
    return
    有点纳闷,能想到那么多的实现方式,帮助中的实现却没人提出来

AutoHotkey 学习指南 我的帖子
我不生产代码,我只是 AutoHotkey 的搬运工:从官方到中文;从其他语言到 AutoHotkey;有时则把 AutoHotkey 搬运到普通用户面前。
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢amnesiac
2017-09-17, 11 : 48 (这个帖子最后修改于: 2017-09-23 11 : 29 by abc001.)
RE: 如何把“双击右键”作为一个热键,而又不影响右键的功能?
(2011-11-13 19 : 21)hitman 提到:  双击右键运行程序 (不影响右键菜单,即右键菜单无延迟版本)

感谢分享。
很好的代码,收藏了。不过在我的脚本里做了小小的一点修改。双击会有右键菜单,所以加了条Send, {Esc},去掉了UP
代码: (全选)
~RButton::
If ((A_PriorHotkey = A_ThisHotkey) and  (A_TimeSincePriorHotkey < 500))
   {
                     ToolTip doubleclick
                     Send, {Esc}
   }
return
自己折腾了下弄出三连击,我想右键双击复制,三击清空剪切板。这个需要点技巧,慢击为双,快击为三,单击为右键菜单。
代码: (全选)
~RButton::
If ((A_PriorHotkey = A_ThisHotkey) and  (A_TimeSincePriorHotkey < 300))
   {
                     MsgBox, Three
                     Send, {Esc}
   }
else
{
If ((A_PriorHotkey = A_ThisHotkey) and (A_TimeSincePriorHotkey < 500))
   {
                     MsgBox, Two  
                     Send, {Esc}
}
}
return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


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