Articles of autohotkey

使一个粘滞键在Windows上不粘

我根本没有使用正确的控制键,我喜欢利用它作为一个方便地放置一些自定义function的热键,我可以轻松地使用Autohotkey。 问题是我也使用粘键为了方便,如果我点击右键控制,然后由Autohotkey绑定的新function被激活,但控制键也进入粘滞状态(因为它在OS级完成),所以它不必要地影响下一个按键。 有没有办法告诉Windows(也许有一个额外的工具),我希望所有的修饰符粘滞,除了正确的控制键?

是否可以使用Apple Mac键盘的Autohotkey将OSX键盘快捷键转换为PC上的Windows 7等效物?

如果一位经验丰富的苹果Mac用户花了数年的时间学习了最喜欢的应用程序的OSX键盘快捷键,他们正在考虑转移到Windows 7或8个人电脑上,他们也想把这个快捷键的知识也翻译过来。 是否可以在电脑上使用真正的Apple Mac键盘,并使用Autohotkey将修改键翻译成下面的翻译表: Mac PC cmd / Apple ctrl ctrl Windows /开始 所以每次我按下苹果键盘上的“苹果”键,它就会在PC上执行“Ctrl”键,每当我按下苹果键盘上的“Ctrl”键,它就会执行“Windows / Start” PC。 我希望这是一个永久的function,而不必添加任何额外的修饰键。 谢谢!

更改由xterm为键组合生成的转义序列

我的目标是build立一个terminal,其中一个命令行界面程序将按照键盘input的预期行事(该程序是最初为Windows编写的xharbour,但现在我想将它移植到linux)。 我select了xterm,因为它更简单,不需要禁用默认的terminal组合键。 用腻子大多数人物工作得很好,对于那些不使用autohotkey,一个ahk脚本,并做这项工作。 例如,对于Ctrl + F1: ^F1::SendInput ^[O5P 我尝试和修改,重新编译terminfo,改变它,并改变键盘types,但不能实现获得^ [O5P响应按Ctrl + F1在terminal。 如果你知道这样做的任何方式,请告诉我…我已经读了几百页,据说这样做,但所有这些变化没有任何影响或没有预期的效果。 所以我试图修改terminal设置来实现我的Ctrl + F1到^ [O5P的目标,并尝试了一些类似于autohotkey的命令和程序: xmodmap ,但对于键组合,它不工作 xdotool windowactivate xyztypes^ [O5P,这将返回单个字符的char代码 xmacro ,它不会将按键发送到其他窗口 ironahk ,我一开始就遇到了一个错误,试图运行example.ahk,在光手册中找不到我希望的命令。 bind '\e[1;5P":"\e[O5P"' ,这里第一个键码就是我当前inputctrl + f1时所得到的结果,并且是我希望通过这个组合得到的结果。 xbindkeys + xvkbd ,也没有帮助。 如果您已经知道,请帮助我,以某种方式进行pipe理(更改为组合键返回的关键代码)。 我使用最新的CentOS和Ubuntu进行testing。

Autohotkey:发送5位hexUnicode字符

我一直在试图find一种方法来重新映射我的键盘和发送5位hexUnicode字符,这里描述的方法: ahk发送只支持4位hex代码{U + nnnn},我知​​道在过去,autohotkey没有本地支持unicode,所以需要一些function才能做到这一点,也许这就是我的解决scheme。 例: #If GetKeyState("CapsLock","T") +u::Send {U+1D4B0} 结果是풰而不是and,풰的代码是{U + D4B0},这意味着AHK只读取最后4位数字。 即使我需要做出新的function来实现这个function,我该如何修复它? 谢谢 -标记

保持与AutoHotkey最大化的窗口?

我有一个AutoHotkey脚本来启动一个像这样最大化的应用程序: `Run, myprogram.exe,, Max` 然后它摆脱了最小化和恢复button。 我仍然可以点击任务栏并向下拖动恢复窗口。 有没有什么好办法让我的窗口在AHK中最大化? 如何locking窗户的位置?

捕获右键单击+用autohotkey左键单击; 意外的行为

我想捕获按键的鼠标右键按下,然后按下鼠标左键。 在autohotkey没有问题。 不过,我仍然无法单独使用鼠标右键。 1)这个工作: RButton & LButton:: Send X Return 按预期工作: 如果我按下鼠标右键,然后鼠标左键,“X”被发送到活动窗口 右键单击事件被Authotkey捕获:当我单击鼠标右键时, 不会出现上下文菜单。 这是预期的结果 2)这个工程 ~RButton & LButton:: Send Y Return 按预期工作: 如果我按下鼠标右键,然后鼠标左键,“Y”被发送到活动窗口 右键单击事件不被Authotkey捕获:当我单击鼠标右键或与左键一起时,上下文菜单会出现。 这是预期的结果 3)现在我想根据活动窗口做不同的事情。 这不起作用(小心:这将禁用每个应用程序的右键单击) #If WinActive("ahk_class MozillaWindowClass") RButton & LButton:: Send X Return #If !WinActive("ahk_class MozillaWindowClass") ~RButton & LButton:: Send Y Return 不按预期工作: 在Firefox中左右发送X,在其他应用程序中左右发送Y. 但是, 每个应用程序都禁用右键单击 我在这里做错了什么? 编辑: 目标是这样的:我想要一个全局热键右键+左键单击RButton & LButton […]

当selectAutoHideTaskbar选项并且脚本(ahk脚本)试图隐藏任务栏时如何隐藏任务栏?

我的应用程序被devise为全屏启动,任何成本的任务栏不应该是用户可见的。 对于隐藏在ahk脚本之下的任务栏,将在后台运行以执行所需的操作。 关于AHK脚本,请select下面的链接描述。 http://ahkscript.org/ 如果select“自动隐藏任务栏”function的Windows 7脚本不起作用。 因此,我已经采取了下面的C#代码来解决应用程序方面的问题。 但在某些情况下,例如应用程序在Windows重新启动后第一次启动时,showwindowfunction无法正常工作,特别是在select“自动隐藏”任务栏选项时。 示例代码 [DllImport("user32.dll")] public static extern int FindWindowEx(int parentHandle, int childAfter, string className, int windowTitle); [DllImport("user32.dll")] private static extern int GetDesktopWindow(); [DllImport("user32.dll")] private static extern int ShowWindow(int hwnd, int command); protected static int Handle { get { return (int)FindWindow("Shell_TrayWnd", ""); } } protected static int HandleOfStartButton { get […]

使用AutoHotKey(AHK)创build类似于Vim的function

我一直在Windows 8机器上使用autoHotKey ,并喜欢它。 但是我希望能够按大小写locking,并将键盘变成一个像命令模式的vim,以便在任何程序中移动光标,插入和删除。 更新(感谢@MCL的帮助到目前为止) 我试图使用下面的脚本,但它不会改变基于状态的行为 state := GetKeyState("Capslock", "T") if state j::Send,{Left} l::Send,{Right} i::Send,{Up} k::Send,{Down} return

更改监视器input源

我想用AutoHotkey更改我的显示器input源,我有这个部分工作。 但是,当我使用热键更改显示器input源到我的Xbox(YPbYr)从PC(DVI),显示器不检测到Xbox打开,它说没有源。 显示器=> Asus vg236 VCP监视器input我的监视器的源代码: DVI => 3 HDMI => 4 YPbPr => 12 我正在使用Windows API监视器configuration函数,特别是使用DDC / CI的SetVCPFeature函数。 经过一番研究,我决定要设置VCPinput源,这里有一些有用的信息,特别是关于input源的第71页。 AutoHotkey代码: setMonitorSource(source) { ; Initialize Monitor handle hMon := DllCall("MonitorFromPoint" , "int64", 0 ; point on monitor , "uint", 1) ; flag to return primary monitor on failure ; Get Physical Monitor from handle VarSetCapacity(Physical_Monitor, […]

在autohotkey中获得可用的屏幕区域

我正在尝试编写几个简单的AutoHotkey脚本来移动窗口,并且无法获得正确的屏幕大小值。 我试图获得屏幕上可用区域的大小(通常是全屏幕分辨率减去任务栏,也可能是任何其他停靠的窗口,如Vista中的侧边栏)。 我find的获取屏幕宽度的方法都不起作用。 我发现获得屏幕尺寸的3种方法都没有给我正确的值。 这里是我正在使用的testing脚本(在XP下运行,任务栏在默认大小的底部): #7:: WinMove A,,0,0,A_ScreenWidth,A_ScreenHeight return #8:: ;SM_CXMAXIMIZED and SM_CYMAXIMIZED SysGet, ScreenWidth, 61 SysGet, ScreenHeight, 62 WinMove A,,0,0,ScreenWidth,ScreenHeight return #9:: ;SM_CXFULLSCREEN and SM_CYFULLSCREEN SysGet, ScreenWidth, 16 SysGet, ScreenHeight, 17 WinMove A,,0,0,ScreenWidth,ScreenHeight return #7使窗口占用整个分辨率,所以它与任务栏重叠。 #8导致宽度大于分辨率(我看到窗口的右边缘显示在我的辅助监视器上),高度稍大,所以窗口部分重叠任务栏区域。 看起来这是正确的,除了没有考虑到在边缘的窗口装饰。 #9似乎有正确的宽度,但高度太短。 它看起来像是从分辨率的高度减去任务栏的高度,但是从中减去另外30个像素。 我可以使用我在#9中所获得的高度,并将30增加到我得到的高度,但是这样的感觉太像是在其他configuration中破解的黑客。 似乎必须有一种方法来正确获取可用的屏幕大小,但我无法在AutoHotkey中find它。 作为参考,这似乎给了我所需要的Java: Toolkit.getDefaultToolkit().getScreenSize();