- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想捕获按键事件“按下鼠标右键,然后按下鼠标左键”。自动热键没问题。但是,我仍然无法让鼠标右键单独工作。
1) 这行得通:
RButton & LButton::
Send X
Return
按预期工作:
2) 这行得通
~RButton & LButton::
Send Y
Return
按预期工作:
3) 现在我想根据事件窗口做不同的事情。
这不起作用(小心:这将在每个应用程序中禁用右键单击)
#If WinActive("ahk_class MozillaWindowClass")
RButton & LButton::
Send X
Return
#If !WinActive("ahk_class MozillaWindowClass")
~RButton & LButton::
Send Y
Return
没有按预期工作:
我在这里做错了什么?
编辑:
目标是这样的:我想要使用 RButton & LButton
右键+左键单击的全局热键。在我测试过兼容性的特定应用程序中,我希望右键+左键单击以禁止发送右键单击,然后使用autohotkey 手动发送右键单击。但是,由于某些应用程序可能无法处理由 autohotkey 发送的鼠标事件,因此在所有未经测试的应用程序中,我想使用 ~RButton & LButton
和 ~ 来传递右键单击事件
最佳答案
这里有一个支持右键拖动的!
Hotkey, LButton, off
#IfWinActive ahk_class MozillaWindowClass
RButton & LButton::
Send X
Return
RButton::return
#IfWinNotActive ahk_class MozillaWindowClass
~$RButton::
Hotkey, LButton, on
while GetKeyState("RButton", "P") {
continue
}
Hotkey, LButton, off
Return
LButton::Send Y
Return
它手动处理 RButton
。当按下 RButton
时,它会启用 LButton
热键并等待 RButton
在停用之前被释放。 RButton
热键使用~
,可以正常传递点击。
LButton
在开始时被顶部的行禁用。
另一种方法是在热键开始时发送 {RButton Down}
,在热键结束时发送 {RButton Up}
。
根据您的编辑,唯一拒绝 Autohotkey 发送事件的程序应该是那些依赖于低级 Hook 的程序......底部方法的真正问题是它只发送一次单击,而不是处理持有按钮。这种方法,以及分别向下和向上发送,都应该正确地做到这一点。
此答案底部描述的事件窗口错误仍然存在,但这是 #IfWin[Not]Active
的问题。
参见 documentation on the ampersand (强调我的):
You can define a custom combination of two keys (except joystick buttons) by using " & " between them. In the below example, you would hold down Numpad0 then press the second key to trigger the hotkey:
Numpad0 & Numpad1::MsgBox You pressed Numpad1 while holding down Numpad0.
Numpad0 & Numpad2::Run NotepadIn the above example, Numpad0 becomes a prefix key; but this also causes Numpad0 to lose its original/native function when it is pressed by itself. To avoid this, a script may configure Numpad0 to perform a new action such as one of the following:
Numpad0::WinMaximize A ; Maximize the active/foreground window.
Numpad0::Send {Numpad0} ; Make the release of Numpad0 produce a Numpad0 keystroke. See comment below.The presence of one of the above hotkeys causes the release of Numpad0 to perform the indicated action, but only if you did not press any other keys while Numpad0 was being held down.
所以,按照这个例子:
#If WinActive("ahk_class MozillaWindowClass")
RButton & LButton::
Send X
Return
RButton::return
#If !WinActive("ahk_class MozillaWindowClass")
RButton & LButton::
Send Y
Return
RButton::Send {RButton}
注意 RButton
需要一个在 WinActive
中什么都不做的变体,至少在我的测试中(见下文):RButton::return
因为我使用的是 Autohotkey 标准,而不是 Autohotkey_L,所以我没有 #If
并且上面的内容未经测试。以下我做过测试,它有效。
#IfWinActive ahk_class MozillaWindowClass
RButton & LButton::
Send X
Return
RButton::return
#IfWinNotActive ahk_class MozillaWindowClass
RButton & LButton::
Send Y
Return
RButton::Send {RButton}
我注意到的一个有趣的错误是第二种 (NotActive) 变体偶尔适用于 Firefox:
RButton
down 已发送RButton
被按住,尽管延迟可能难以察觉,以毫秒为单位,直至无限)
RButton
up 已发送,根据文档发送 RButton
。因为 Firefox 在事件窗口检查和发送 RButton
之间的延迟中变为事件状态,所以 RButton
被发送到 Firefox。当 Firefox 和另一个窗口都可见,并且另一个窗口在单击时处于事件状态时,就会发生这种情况。
我试图通过在 RButton
热键中添加一个额外的 IfWinNotActive
检查来修复这个错误,但它似乎不起作用。
关于windows - 使用自动热键捕获右键单击+左键单击;意想不到的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317568/
我想做的是,如果鼠标位于“下一个”按钮上,它会以慢速向右滚动,如果鼠标没有位于“下一个”按钮上,它会停止滚动? 这是我的尝试http://jsfiddle.net/mdanz/nCCRy/14/ $(
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我为我的MatchQuery使用了模糊性选项,但是我想将模糊性值设置为auto。有什么办法吗? 另外,对于完成建议程序,您可以将其设置为支持unicode,对于我的MatchQuery,有什么方法可以
我想从表中获取一行[字符串名称,字符串密码,int 某些内容]并将其映射到一个 User 对象,该对象具有 3 个属性,如上面的 getter 和 setter有什么方法可以自动完成吗?我考虑过反射,
我有一个像这样的方法:void m1(string str) 并且有一个像这样的类: public class MyClass { public bool b1 { set; get; }
我正在尝试使用 $rootScope 从一个 Controller 向另一个 Controller $broadcast 一些数据。 如果我使用像 ng-click 这样的触发器来运行将广播的功能,它
我考虑了很多关于是要使用完全自动化的缓存还是手动缓存。 我们的自动方法是一种解决方案,它可以挖掘数据库、查询和格式化每个潜在和 future 的数据请求,并将其保存到适当的缓存存储(内存缓存或基于磁盘
我的 CSS 必须使用过渡来更改,直到现在我都使用 div:hover 来实现。 当您单击另一个 div 时需要激活过渡,而不是当您将鼠标悬停在必须移动/更改的 div 上时。 我该怎么做? 谢谢 永
在我的应用程序中,我需要一些动画,但如果它已经设置了动画,则不需要持续时间。但我的问题是它会自动添加持续时间。 在这里你可以看到 2 个函数,第二个没有持续时间但它确实有持续时间(可能从 1 秒开始)
两年前,我需要制作一个工具,通过 POST 自动将 txt/csv 文件上传到我的 Web 服务器,然后使用 cronjob 通过 PHP 对其进行解析。 这有两次在每天午夜自动发生。尽管这行得通,但
请阅读下面程序中的评论: #include void test(char c[]) { c=c+2; //why does this work ? c--; printf("%
也许是个幼稚的问题,但是...... 确认或拒绝: 自动和静态存储持续时间的对象/变量的内存的存在是在编译时确定的,程序运行时失败的可能性绝对为零,因为没有足够的内存用于自动对象。 自然地,当自动对象
有没有什么方法可以自动获得类中属性更改的通知,而不必在每个 setter 中都编写 OnPropertyChanged? (我有数百个属性,我想知道它们是否已更改)。 安东建议 dynamic pro
我们在使用 Azure DevOps 的项目中采用了 gitflow 流程。我有以下场景: 当功能分支合并到 Develop 时,我想在完成拉取请求的同时执行压缩合并策略 当 Release 分支定期
我的网站上有一个评论部分,我将 html 编码的评论保存在我的数据库中。所以我添加了这条评论- "testing" `quotes` \and backslashes\ and html 并将其保存在
是否存在“ checkin 前 TFS 自动 checkout ”这样的功能,以便在我说“ checkin ”之前我不会 checkout 任何文件,例如以防我只是临时更改文件 - 这一直发生。 换句
我有一个运行在 Linux/Apache/Tomcat 堆栈上的网站,它需要每隔几个月自动脱机以进行服务器维护,这将持续任意时间。有哪些选项可以让 Apache 建立和取消“服务器维护”页面? 我需要
我经常在工作中创建文档,在公司内部,由于我们使用的首字母缩写词和缩写词的数量,我们几乎拥有自己的语言。因此,我厌倦了在发布文档之前手动创建首字母缩写词和缩写表,并且快速的谷歌搜索发现了一个可以有效地为
我希望在用户或宏将计算模式从自动更改为手动或手动更改为自动时运行代码。是否有为此触发的事件? (属性是 Application.Calculation 在 Excel 互操作中。) 使用 Excel
这个问题在这里已经有了答案: Repeat command automatically in Linux (13 个回答) 6年前关闭。 我想创建一个脚本来获取另一个文件夹中的所有文件夹名称。并为这些
我是一名优秀的程序员,十分优秀!