Windows 提供的高對比模式主要有兩類:白底黑字、黑底白字。我習慣的配置是淺底或白底黑字,且大部分 Windows 軟體也都是淺底或白底黑字,所以其實需要用到高對比模式的情況沒那麼多。而我前端工作常會用到的工具 Notepad++、Sublime Text 等,都能自選淺底佈景,自然也不需要切換成高對比模式。
會需要切換的主要是瀏覽器,因為每個網頁都會有自己的風格、配色,若遇到常用的網頁是黑底、深色為主色時,例如「PTT 網頁版」眼睛看了沒那麼舒服,就會想切換成白底黑字。
可惜的是測試了大部分 Chrome 套件,沒有一個可以很好的將黑底白字轉換成白底黑字,總之跟 Windows 預設的高對比效果差很多,所以最終還是得使用 Win10 的白底黑字佈景才行。
事情到此看起來已經結束了,那麼還有什麼問題要解決呢?其實為什麼我要花那麼多時間測試 Chrome 高對比套件,就是因為 Win10 切換高對比模式的熱鍵不好按,一方面需要兩隻手才能按得出來,一方面真的很難記,熱鍵的設計完全沒邏輯所以常常忘記怎麼按。
所以我想改成自訂熱鍵,除了好記也能用一隻手就按出來。然而這個任務進行了才發現異常艱難,本篇會分享這個過程有哪些坑,以及最終的解決方法。
Ctrl + H 、Ctrl + Alt + H 這類可以跟 High Contrast 做聯想的熱鍵,同時也比較好按。
Alt + Shift + Printscreen ,但我所有的測試都失敗了:
1. 快速鍵軟體 HotkeyP我利用「快速鍵軟體 HotkeyP」,設定按下 Ctrl + Alt + H 後,會自動模擬按鍵 Alt + Shift + Printscreen ,但很奇怪怎麼按都不會有反應,測試了各種選項例如「以系統管理原身份執行」、「延遲執行」等等,都沒有效。
2. PowerShell 指令於是測試直接用 PowerShell 指令,模擬同時按下組合鍵,例如可參考這個討論串的模擬按鍵語法「Send Keys in Powershell」,奇怪的是一樣不會有作用。
systemsettings.exe (也就是設定畫面的那個檔)。
雖然看起來事情解決了,但我不太喜歡這個解法,因為切換佈景主題有時花的時間長、有時花的時間短,不一定都是 3 秒。如果換了過長或過短的秒數:
highContrast.ps1 。
2. Bat 檔內容開啟記事軟體,貼入以下內容:
一、Win10 內建功能操作
1. 選擇佈景主題使用 Win10 內建的高對比模式,及選擇對應的佈景主題,請見以下流程: 開始 → 設定 → 輕鬆存取 → 高對比 →「開啟高對比」選擇「開啟」→ 選擇佈景主題 → 白底黑字 選完佈景主題後,再將「開啟高對比」選擇「關閉」即可,將來使用高對比功能時會自動啟用此佈景主題。 2. 熱鍵 Windows 預設切換高對比模式的熱鍵如下:Alt + Shift + Printscreen
這組熱鍵既不好記,也看不出使用截圖鍵的邏輯,還不如 二、自訂熱鍵的困難之處
要使用自訂熱鍵取代預設熱鍵,原理就是想辦法模擬按下三、執行佈景檔案
後來想到以前 Win7 似乎已經做過這件事,使用的方法是桌面設定兩個捷徑,一個高對比、一個原佈景,點擊捷徑就會執行佈景檔案,於是試著在 Win10 測試: 1. 儲存原本佈景檔桌面按右鍵 → 個人化 → 佈景主題 佈景調整完畢後,如上圖按「儲存佈景主題」,設定名稱(例如 WFU),這個佈景主題檔案路徑如下:C:\Users\使用者名稱\AppData\Local\Microsoft\Windows\Themes\WFU.theme
在檔案總管直接點擊此檔,就會立即套用該佈景主題。
2. 找出高對比佈景檔
Win10 的所有 4 個高對比佈景檔案路徑如下:
C:\Windows\Resources\Ease of Access Themes
如上圖,紅框處的兩個檔案是主要目標:
- hcwhite.theme:白底黑字
- hcblack.theme:黑底白字
- 佈景真的有切換,但切換完之後,直接進入系統設定「佈景主題」的畫面...
C:\PATH\TO\THEME\FILE.theme & timeout /t 03 /nobreak > NUL & taskkill /f /im systemsettings.exe
翻成中文的意思就是,執行佈景檔案後,等待 3 秒,再刪除執行中的檔案 - 長一點比較穩妥,但等待時間久,要跟著一起瞎耗時間
- 短一點可能導致 systemsettings.exe 還沒執行,指令找不到檔案刪就結束了
四、切換佈景軟體
1. Winaero Theme Switcher所以,只能繼續找解決方案,還好找到了國外大神製作的切換佈景工具:- 介紹網頁:How to Change the Theme in Windows 11
- 下載頁面:Download Winaero Theme Switcher
- 下載連結:WinaeroThemeSwitcher.zip
- 下載檔案後解壓縮,裡面有 Win7 及 Win8 資料夾,執行 Win8 裡的檔案
ThemeSwitcher.exe 就行了 - 執行後如上圖,可看到目前使用的佈景(WFU),點擊紅框中的「Apply a theme」,選擇佈景檔案即可套用。
- 不知道佈景檔案路徑的話,請往前找「三、執行佈景檔案」→「2. 找出高對比佈景檔」
themeswitcher.exe "C:\Windows\Resources\Ease of Access Themes\hcwhite.theme"
五、使用 PowerShell 切換高對比模式
所有困難點都解決了,接下來終於可以用 PowerShell 寫指令,切換高對比佈景與原始佈景: 1. PowerShell 檔案內容開啟記事軟體,貼入以下內容:# 偵測目前佈景
$theme = Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes" -Name "CurrentTheme" | Select-Object -ExpandProperty CurrentTheme
# 偵測到高對比白色模式
if ($theme -eq "C:\Windows\...\hcwhite.theme") {
# 則使用預設佈景
& "D:\...\ThemeSwitcher.exe" "C:\...\WFU.theme"
} else {
# 非高對比白色模式 則切換到高對比白色
& "D:\...\ThemeSwitcher.exe" "C:\Windows\...\hcwhite.theme"
}
- 所有程式碼的意思,請見註解文字說明
- 所有紅字參數,請按說明修改成自己的路徑
- hcwhite.theme 請改為自己的高對比佈景檔案路徑
- ThemeSwitcher.exe 請改為自己的檔案路徑
- WFU.theme 請改為自己的原始佈景檔案路徑
powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -File "D:\...\highContrast.ps1"
- 紅字參數 highContrast.ps1 請改為自己前面儲存的 ps1 檔名路徑
- 改完後請將此檔副檔名儲存為 .bat,例如
highContrast.bat - 直接點擊此 bat 檔,即可看到高對比佈景切換效果
- 對檔案按右鍵,建立捷徑 → 對捷徑按右鍵即可自訂快速鍵
- 或是也可利用 HotkeyP 這類快速鍵軟體,設定快速鍵來執行此 bat 檔
更多 Windows 相關文章: