發現隱藏的 Windows 功能:我使用 AutoHotkey 的經驗

發現隱藏的 Windows 功能:我使用 AutoHotkey 的經驗

利用 AutoHotkey(版本 2)的強大功能改變了我在 PC 上使用 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 防止計算機進入睡眠狀態

設定AHK腳本的小時計時器

在下載大檔案時,我發現電腦的睡眠模式會中斷該過程,從而造成困擾。為了解決這個問題,我設計了一個腳本來使用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 的靈活性意味著唯一的限制就是您的想像。

來源和圖片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *