
AutoHotkey(版本 2)的强大功能彻底改变了我在电脑上使用 Windows 的方式。多年来,我一直手动运行 PowerShell 脚本,现在我集成了 AutoHotkey,将其与按键无缝绑定,打造出一种令人联想到微软之前未曾重视的隐藏功能的用户体验。本指南将帮助您使用旨在简化工作流程的自定义脚本来提升工作效率。
10 我的个人快速应用启动器

我经常发现,像记事本、计算器和画图这样的常用工具,总是被淹没在浩瀚的桌面图标中,或者隐藏在“开始”菜单中。为了解决这个问题,我设计了一个自定义菜单,只需按下Windows 键+ M即可调出,这样我就可以立即访问常用的应用程序,而无需费力地搜索。
#Requires AutoHotkey v2.0 m::{ MyMenu: = Menu() MyMenu. Add("Calculator", (*) => Run("calc.exe")) MyMenu. Add("Sticky Notes", (*) => Run("explorer.exe shell:AppsFolder\Microsoft. MicrosoftStickyNotes_8wekyb3d8bbwe!App")) MyMenu. Add("Notepad", (*) => Run("notepad.exe")) MyMenu. Add("Paint", (*) => Run("mspaint.exe")) MyMenu. Show() }
这个脚本的优点在于它的可定制性。例如,如果你想添加像 Notion 这样的应用程序,只需复制一行代码,重命名,然后输入相应的路径即可。这个启动器帮我节省了一整天的时间,避免了那些可能累积起来就造成巨大浪费的点点挫败感。
9 一致的水平滚动
如果水平滚动功能不稳定,经常使用会很麻烦,尤其是在那些用于查看代码片段或创建设计的重要应用中。幸好,我开发了一个简单的脚本,确保水平滚动在所有应用程序中都能按预期运行。
使用以下代码创建您自己的水平滚动脚本:
#Requires AutoHotkey v2.0 #HotIf GetKeyState("Shift", "P") WheelUp::Send("{WheelLeft}") WheelDown::Send("{WheelRight}") #HotIf
这样,您就可以按住Shift 键并使用鼠标滚轮轻松地横向滚动 – 从 Excel 电子表格到网页设计工具,它都非常有用。
8 即时访问任何文件夹
管理过多的文件夹会使访问变得复杂,尤其是在匆忙的时候。为了解决这个问题,我设计了一个脚本,只需使用Ctrl + ALT + D的简单组合键即可打开特定的文件夹。
#Requires AutoHotkey v2.0 ^!d::Run('explorer.exe "C:\Users\jricm\Downloads"')
您可以随意修改脚本中的路径,使其指向您想要的文件夹。我已针对我的桌面、文档和其他项目特定的存储库定制了不同的版本,以便我轻松实现即时访问。
7 个 日常短语的快速文本扩展
为了提高沟通效率,我探索了快速文本扩展的潜力。使用简单的 AHK 脚本,我可以快速轻松地插入常用短语。
#Requires AutoHotkey v2.0 #SingleInstance Force::gm::Good morning::ty::Thank you::brb::Be right back
通过输入“gm”之类的快捷键,然后按空格键,它就会立即转换为“早上好”。这个功能增强了我的沟通流畅度,对于有效地回复消息尤其有用。
6 键盘的自定义音量控制

在 Windows 上控制音量通常会让人觉得很麻烦。为了简化操作,我自定义了一些快捷键,CTRL +逗号用于降低音量,CTRL +句号用于提高音量。
#Requires AutoHotkey v2.0 #SingleInstance Force ^, ::Send("{Volume_Down}") ; Ctrl + Comma ^.::Send("{Volume_Up}") ; Ctrl + Period ^m::Send("{Volume_Mute}") ; Ctrl + M
这些快捷键不仅易于记忆,而且易于访问,方便快速调整,同时保持专注工作。此外,音量叠加层模拟了专用音量控制的功能。
5 立即将鼠标光标置于中心
使用多台显示器时,找到鼠标光标可能比较困难。为了解决这个问题,我开发了一个脚本,只需按下Ctrl + Alt + C即可将光标置于中心。
#Requires AutoHotkey v2.0 ^!c:: { WinGetPos(&x, &y, &w, &h, "A") MouseMove(x + w/2, y + h/2) }
此脚本通过将光标置于活动窗口的中心(即使部分窗口不在屏幕内),实现应用程序之间的快速导航。如有需要,可对其进行调整以将光标移动到特定位置。
4 自动组织下载文件夹
-
前
-
后
我的“下载”文件夹曾经乱得令人难以忍受——文件散落在各处。为了解决这个问题,我设计了一个脚本,可以自动按类型整理传入的文件。按下F12键即可触发,它会每隔五秒扫描并分类下载内容。
#Requires AutoHotkey v2.0 downloads:="C:\Users\jricm\Downloads", interval:=5000 ext:=Map("pdf", "Docs", "docx", "Docs", "xlsx", "Docs", "txt", "Text", "jpg", "Images", "png", "Images", "mp3", "Music", "mp4", "Videos", "exe", "Programs", "zip", "Archives") F12:: { static on:=false on:=!on, SetTimer(MoveFiles, on?interval:0) ToolTip("AutoSort: "(on?"ON":"OFF")) SetTimer(() => ToolTip(), -1500) } MoveFiles() { Loop Files downloads "\*.*", "F" if ext. Has(e:=A_LoopFileExt) { d:=downloads "\"ext[e] if! DirExist(d) DirCreate(d) try FileMove(A_LoopFilePath, d "\"A_LoopFileName, 1) } }
此脚本非常有用,因为它可以根据需要自动创建文件夹,并避免文件覆盖。此外,它还提供了一个简单的工具提示,指示是否启用了自动排序功能,从而简化了文件整理流程。
3 为特定工作流程启动多个应用程序
AutoHotkey 的多功能性在工作流程管理方面尤为突出。例如,使用 Windows 虚拟桌面时,我希望使用一个热键同时启动多个应用程序。
#Requires AutoHotkey v2.0 +1:: { Run('"C:\Users\jricm\AppData\Local\Programs\Microsoft VS Code\Code.exe"') Run('"C:\Program Files\JetBrains\DataGrip 2023.3.4\bin\datagrip64.exe"') Run('"C:\Program Files\Docker\Docker\Docker Desktop.exe"') }
使用Shift + 1可以同时启动多个应用程序,让我可以在它们加载时处理其他任务。我为不同的工作流程创建了各种脚本,使上下文切换变得无缝且高效。
2 保持重要窗口始终可见
在教程或协作讨论等任务中,保持某些窗口的可见性至关重要。遗憾的是,Windows 缺少内置功能来始终实现这一点。我用一个简洁的脚本解决了这个问题。
#Requires AutoHotkey v2.0 ScrollLock:: { try { activeHwnd: = WinGetID("A") isTopMost: = WinGetExStyle(activeHwnd) & 0x8 ; 0x8 = WS_EX_TOPMOST WinSetAlwaysOnTop(!isTopMost, activeHwnd) SetScrollLockState(isTopMost? "Off": "On") ToolTip("Always On Top: "(isTopMost? "OFF": "ON")) SetTimer(() => ToolTip(), -1000) } }
此脚本可轻松将选定窗口提升至始终置顶,并显示激活确认的视觉指示器。由于 Scroll Lock 键使用频率不高,因此操作起来并不显眼。
1 防止计算机进入睡眠状态

在下载大文件时,我发现电脑的睡眠模式会中断下载,这让我很郁闷。为了解决这个问题,我编写了一个脚本,使用Ctrl + Alt + Shift + S组合键来禁用睡眠模式。
#Requires AutoHotkey v2.0 #SingleInstance Force global on: = false, endTime: = 0 ^!+s::{ global on, endTime if! on { hrs: = InputBox("Enter hours (0 = infinite):", "Anti-Sleep").Value if! IsNumber(hrs) || hrs < 0 return MsgBox("Invalid input.") endTime: = hrs? A_TickCount + hrs*3600000: 0 SetTimer(AntiSleep, 300000), SetTimer(CheckEnd, 1000), on: = true ToolTip("Anti-Sleep: ON"(hrs? "`n"hrs "h": ""), 500, 500) SetTimer(() => ToolTip(), -1500) } else { SetTimer(AntiSleep, 0), SetTimer(CheckEnd, 0), on: = false ToolTip("Anti-Sleep: OFF", 500, 500) SetTimer(() => ToolTip(), -1000) } } AntiSleep() => (MouseMove(1, 0, 0, "R"), MouseMove(-1, 0, 0, "R")) CheckEnd() => endTime && A_TickCount >= endTime && Send("^!+s") ^!+x::Send("^!+s")
这个脚本通过模拟鼠标的轻微移动来防止我的电脑进入睡眠模式。它还增加了一个功能,允许在预定时间后停用,并附带状态更新工具提示。
开始编写脚本可能看起来令人望而生畏,但您无需完全掌握每行代码即可获得其优势。获取 AutoHotkey,从一两个满足您特定需求的脚本开始。随着您的信心增强,逐步集成更多脚本,进一步完善您的工作流程。
常见问题
1.什么是 AutoHotkey?它如何提高我的工作效率?
AutoHotkey 是一种功能强大的脚本语言,主要用于在 Windows 上自动执行任务。通过创建个性化脚本,您可以消除重复操作、自定义键盘快捷键并简化工作流程,从而提高工作效率,让您专注于重要任务。
2. AutoHotkey 脚本难学吗?
虽然语法乍一看可能比较复杂,但 AutoHotkey 操作起来非常方便,提供了丰富的文档和社区支持。从简单的脚本开始学习有助于建立你的自信心,随着你逐渐熟练掌握,可以逐步学习更高级的脚本。
3.我可以为任何应用程序定制 AutoHotkey 脚本吗?
是的!AutoHotkey 脚本可以自定义,几乎可以兼容任何应用程序。您可以为特定程序创建快捷方式和自动化功能,使其成为一款多功能工具,可提高各种任务的效率。AutoHotkey 的灵活性意味着,唯一的限制就是您的想象力。
发表回复 ▼