一款適用於 Windows 電競掌機的文字輸入輔助應用程式,用於改善在《FINAL FANTASY XIV 繁體中文版》遊戲環境中,於特定操作情境下無法直接使用 Windows 觸控式鍵盤輸入中文的使用體驗。✨
- 輔助輸入 ⌨️:提供單一文字方塊,方便使用控制器開啟 Windows 觸控式鍵盤(
TabTip.exe)並輸入文字。- 需要配合輸入法(
微軟注音、微軟倉頡及Microsoft 速成)的「遊戲控制器」鍵盤配置使用。 - 此鍵盤配置為 Windows 11 在部分版本中提供的系統功能,並採用微軟的 Controlled Feature Rollout(CFR) 分階段下放機制。
- 實際可用性可能因系統版本、裝置與功能下放進度而異。
- 需要配合輸入法(
- 支援全域快速鍵 🎹:可快速喚出應用程式,具備快速鍵註冊衝突自動回退機制。
- 智慧邊界彈回 🎯:當視窗因拖曳、解析度變更或 DPI 縮放而超出螢幕範圍時,會自動彈回可視區域內。
- 支援不透明度調整 🌓:可自訂視窗透明度(70% ~ 100%),並支援控制器快速鍵組合快速微調。
- 支援 XInput 與 GameInput 遊戲控制器輸入 API 🎮:
- XInput:適用於 Xbox 控制器及絕大多數模擬控制器。(預設)
- GameInput:支援現代標準,無控制器數量限制。
- 本應用程式具備自動退避機制(GameInput 初始化失敗將自動切換至 XInput)。
- 隱私模式 🔒:支援不記錄輸入內容的隱私模式。開啟瞬間將自動清空目前的輸入框與歷程記錄,提供最高等級的防偷窺保護(可於右鍵選單切換)。此外,開啟後無障礙播報會改為隱私安全訊息,不朗讀實際選取文字或被刪除的字元內容。
- 支援輸入歷程記錄 📜:僅存在於記憶體中,關閉程式即清除。
- 片語庫 📝:可預先儲存常用文字片段,並於輸入時透過右鍵選單快速插入,節省重複輸入的時間。支援最近使用置頂顯示、分頁瀏覽,以及新增、編輯、刪除與排序管理。片語存放於
%AppData%\InputBox\phrases.json,最多可儲存 50 個片語。 - 多控制器自動切換 🔄:支援同時連接多個控制器,並能自動偵測並切換至目前正在活動(有按鍵或搖桿操作)的裝置。
- 動態標題資訊 ℹ️:視窗標題列會即時顯示目前使用的遊戲控制器輸入 API(XInput/GameInput)與硬體裝置名稱。
- 單一執行個體保護 🔐:同一使用者工作階段中僅允許執行一個實例。若重複啟動,將自動喚醒並帶出已在執行中的視窗。
- 多語系支援 🌐:自動跟隨系統語系顯示對應的介面文字,目前支援正體中文(zh-Hant)、簡體中文(zh-Hans)、日文(ja)與英文(en)。
- 深色模式支援 🌙:自動偵測 Windows 系統主題(淺色/深色/高對比),並在偵測到主題變更時提示重新啟動以套用新配色。
- 日誌服務與故障排除 📝:具備例外錯誤記錄功能,當程式發生未捕捉的嚴重錯誤或設定檔存取失敗時,會自動記錄詳細資訊(包含堆疊追蹤)至本地日誌檔中。
- 日誌檔位置:
%LocalAppData%\InputBox\Logs\InputBox.log。 - 日誌檔輪替:具備自動容量管理(單一檔案 5MB)與備份機制(最多保留 5 個備份檔),確保不佔用過多硬碟空間。
- 日誌檔位置:
- 作業系統 🪟:Windows 11 22H2(Build 22621)以上版本。
- 本需求僅代表本應用程式本身的最低執行環境;部分系統功能(如「遊戲控制器」鍵盤配置)可能採用分階段下放,實際可用性視系統狀況而定。
- 遊戲控制器輸入 API 支援 🎮:
- XInput:系統原生支援,無需額外安裝。
- GameInput:系統需具備 GameInput 執行階段。
- 多數 Windows 11 系統已內建 GameInput 執行階段;若系統未提供或載入失敗,本應用程式會自動退避至 XInput 相容模式。
- 可轉散發組件(選用):可透過微軟 Microsoft.GameInput NuGet 套件取得。
- 安裝方式:執行套件
redist目錄下的GameInputRedist.msi。
- 安裝方式:執行套件
- Ctrl + Alt + Shift + I(預設):全域快速鍵,用於顯示本應用程式。(可於設定檔中自訂修改)
- 需先啟動並在背景執行後,快速鍵才會生效。
- Enter:
- 文字方塊為空時:開啟 Windows 觸控式鍵盤(
TabTip.exe)。 - 文字方塊有文字時:將文字複製到 Windows 剪貼簿,並在系統允許的情況下,將焦點切換回先前的前景視窗。
- 文字方塊為空時:開啟 Windows 觸控式鍵盤(
- Alt + A:功能等同於 Enter。
- Alt + B:不複製直接返回前一個視窗。(與控制器 LB + RB + B 對等)
- Alt + M 或 F10:開啟功能選單。(與控制器 Y 鍵 對等)
- Alt + 方向鍵 ↑/↓:即時增加或減少視窗不透明度(每次增減 5%)。(與控制器 Back 鍵 + 方向鍵 ↑/↓ 對等)
- Alt + 0(數字 0):將視窗不透明度重設為 100%。(與控制器 Back 鍵 + X 鍵 對等)
- Alt + P:切換隱私模式。
- Shift + Enter:換行。
- Shift + 方向鍵:選取文字。
- ESC 鍵:清除輸入。若輸入框已為空,則直接返回前一個視窗。
- F1:開啟說明對話框,顯示鍵盤快速鍵與控制器按鍵對應表。
- Ctrl + M:將焦點跳至文字輸入框。
- 方向鍵 ←/→:移動輸入游標。
- 方向鍵 ↑/↓ 或滑鼠滾輪:瀏覽輸入歷程記錄。
- A 鍵:多功能確認鍵。
- 文字方塊有文字時:執行確認(複製並返回)。
- 文字方塊為空時:開啟 Windows 觸控式鍵盤(
TabTip.exe)。 - 選單開啟時:執行選取項目或展開子選單。
- B 鍵:取消/清除。
- 選單開啟時:退回上一層選單或關閉選單。
- 文字輸入時:清除目前輸入內容。
- X 鍵:刪除選取文字或游標前一個字元。
- 功能等同鍵盤 Backspace。
- Y 鍵:開啟右鍵選單(智慧功能選單)。
- 方向鍵 ↑/↓:瀏覽輸入歷程記錄。
- 方向鍵 ←/→:移動輸入游標。
- LB + 方向鍵 ←/→:單字跳轉。快速跳轉游標至下一個空白、標點或字元類型邊界。
- 左搖桿:功能等同鍵盤方向鍵。
- 用於瀏覽輸入歷程記錄或移動游標。
- 右搖桿 ←/→:虛擬選取模式。直接擴張或縮減文字選取範圍。
- Start 鍵:開啟 Windows 觸控式鍵盤(
TabTip.exe),可在已有內容時直接叫出鍵盤進行修正。 - Back 鍵:嘗試將焦點切換回先前的前景視窗。
- 按住 LB 與 RB 不放,再按下 B 鍵:功能等同於控制器 Back 鍵。
- 避免誤觸 Back 鍵時意外切換回先前的前景視窗。
- 按住 LB 與 RB 不放,再按下 X 鍵:快速結束並關閉應用程式。
- 不透明度調整組合鍵:
- 按住 Back 鍵 + 方向鍵 ↑/↓:即時增加或減少視窗不透明度(每次增減 5%)。
- 按住 Back 鍵 + X 鍵:將視窗不透明度重設為 100%。
當右鍵選單或數值輸入對話框開啟時,控制器行為會自動切換為導覽模式:
- 右鍵選單導覽:
- 方向鍵 ↑/↓:上下移動選取項目。
- 方向鍵 ←/→:進入(或按控制器 A 鍵)或退出(或按控制器 B 鍵)子選單。
- A 鍵/Start 鍵:執行選取的項目。
- B 鍵/Back 鍵:關閉選單。
- 數值輸入對話框操作 🔢:
- 方向鍵 ↑/↓:增加或減少數值。
- A 鍵/Start 鍵或鍵盤 Alt + A:確認。
- B 鍵或鍵盤 Alt + B:取消。
- X 鍵或鍵盤 Alt + X:重設為預設值。
在應用程式的文字輸入框上按下滑鼠右鍵,或透過控制器 Y 鍵、鍵盤 F10 或 Alt + M,即可於目前位置喚出功能選單:
- 隱私模式 🔒:切換是否記錄輸入歷程。開啟時標題列會顯示
(🔒)符號,且未來的輸入內容皆不會存入歷程記錄中。為確保最高安全性,開啟的瞬間將自動清空目前的輸入框與所有已儲存的歷程記錄,防止舊資料因誤觸而洩漏。 - 允許中斷廣播 🔇:切換螢幕報讀軟體的廣播中斷行為。勾選(預設)時允許新廣播中斷前一則;取消勾選後,每則訊息皆完整依序播報,適合需要聆聽完整訊息的使用者。
- 片語 📝:展開子選單,顯示已儲存的片語清單(最近插入的片語以 ★ 標示置頂顯示)。點選任一片語即可將其內容插入至文字輸入框。
- 管理片語…:開啟片語管理對話框,可進行新增、編輯、刪除及排序操作。控制器 Y 鍵 新增、A 鍵 插入、X 鍵 刪除、左/右方向鍵 排序、B 鍵 關閉。
- 片語數量提示:片語管理對話框會顯示目前數量(例如
12/50);接近上限時會提供額外視覺提醒,協助避免新增失敗。 - 片語編輯對話框中的 B 鍵行為:若焦點位於名稱或內容輸入框且有文字,先清空該輸入框;若輸入框已為空或焦點不在輸入框,則執行取消關閉。
- 片語編輯對話框中的 Enter 行為:在名稱或內容輸入框中,按下 Enter 時,若目前欄位為空會開啟 Windows 觸控式鍵盤;若目前欄位已有內容則執行確認驗證。於內容欄位可使用 Shift + Enter 換行。
- 分頁行為:若片語項目超過單頁容量,子選單會顯示 ◀/▶ 分頁控制;每次重新開啟片語子選單時,會回到第 1 頁。
- 快速鍵設定 ⚙️:
- 修飾鍵組合:可直接勾選 Alt、Ctrl、Shift 或 Win 鍵作為快速鍵的修飾部分。
- 擷取主要按鍵:點選後,應用程式會進入擷取狀態,此時按下鍵盤上的任一按鍵即可將其設定為喚出快速鍵的主要按鍵(按下鍵盤 ESC 鍵 或控制器 B 鍵 可取消擷取)。
- 設定 ⚙️:包含視窗不透明度、回饋強度、控制器死區與歷程記錄容量等進階設定。
- 開啟資料夾 📂:快速開啟位於
%AppData%\InputBox的應用程式資料儲存路徑,方便手動備份或修改設定檔。
- 開啟資料夾 📂:快速開啟位於
- 清除歷程記錄 🗑️:手動清空目前儲存在記憶體中的所有輸入歷程記錄。
- 說明 ❓:開啟說明對話框,顯示鍵盤快速鍵與控制器按鍵對應的完整查閱表(功能等同按下 F1)。
- 離開 🚪:關閉並結束應用程式。
本應用程式的設定檔會在第一次執行時自動產生。若需要調整震動強度、視窗還原延遲等參數,請修改此檔案。
設定檔位於使用者的應用程式資料夾中:
- 路徑:
%AppData%\InputBox\appsettings.json - 快速存取方式:
- 按下
Win + R開啟執行視窗,輸入%AppData%\InputBox並按下 Enter。 - 捷徑 🚀:您可以透過右鍵選單中的 「設定」→「開啟資料夾」 快速跳轉至此路徑。
- 將會看到
appsettings.json檔案。
- 按下
故障排除 🔧:若因手動修改格式錯誤導致程式崩潰或無法啟動,請直接刪除此
appsettings.json檔案。程式將於下次啟動時自動還原為預設設定。
可使用任何文字編輯器(如 Windows Notepad、Visual Studio Code)開啟 appsettings.json 進行編輯。
下表列出所有可調整的設定項目及其行為說明。
| 分類 | 參數名稱 | 類型 | 預設值 | 有效範圍 | 說明 |
|---|---|---|---|---|---|
| 視窗操作 | WindowOpacity |
浮點數 | 1.0 |
0.7 ~ 1.0 |
視窗不透明度。當系統開啟「高對比」模式時,此值會被強制視為 1.0 以維護視覺安全。 |
WindowRestoreDelay |
整數(毫秒) | 50 |
0 ~ 5000 |
還原視窗的緩衝時間(毫秒),電腦較慢者可調大此值以避免視窗全黑。 | |
ClipboardRetryDelay |
整數(毫秒) | 20 |
0 ~ 1000 |
剪貼簿鎖定時的重試基礎間隔(毫秒)。 | |
TouchKeyboardDismissDelay |
整數(毫秒) | 300 |
0 ~ 5000 |
觸控鍵盤關閉後的緩衝時間(毫秒)。 | |
WindowSwitchBufferBase |
整數(毫秒) | 150 |
0 ~ 5000 |
切換回遊戲視窗前的基礎等待時間(毫秒)。 | |
| 隨機化設定 | InputJitterRange |
整數(毫秒) | 50 |
0 ~ 1000 |
視窗焦點切換的隨機抖動範圍(毫秒)。用於使操作行為更接近人類,避免被部分環境視為自動化操作。 |
| 操作體驗調整 | IsPrivacyMode |
布林值 | false |
- | 是否開啟隱私模式(true/false)。開啟後標題列會顯示 (🔒) 且不記錄輸入歷程。 |
A11yInterruptEnabled |
布林值 | true |
- | 是否允許螢幕報讀廣播中斷前一則訊息。停用後每則訊息皆完整依序播報。 | |
| 遊戲控制器輸入 API | GamepadProviderType |
字串 | "XInput" |
- | 選擇遊戲控制器輸入 API:"XInput" 或 "GameInput"。若 GameInput 初始化失敗將自動退避至 XInput。備註:使用 GameInput 時,遊戲控制器可能需在實際產生輸入(如按鍵或搖桿操作)後,才會開始回報狀態。初次連線時若尚未有反應,請稍候或操作遊戲控制器一次即可。 |
ThumbDeadzoneEnter |
整數 | 7849 |
0 ~ 30000 |
XInput 標準值(0~32767),無單位。搖桿推動觸發閾值。若控制器搖桿因磨損而產生偏移,可提高此值。 | |
ThumbDeadzoneExit |
整數 | 2500 |
0 ~ 30000 |
XInput 標準值(0~32767),無單位。搖桿回彈重置閾值。此值必須顯著低於觸發閾值以防止抖動。 | |
RepeatInitialDelayFrames |
整數(幀) | 30 |
1 ~ 300 |
長按方向鍵時,開始重複輸入前的延遲(幀)。1 幀約為 16.6ms(60 FPS)。 | |
RepeatIntervalFrames |
整數(幀) | 5 |
1 ~ 100 |
長按方向鍵時的重複速度(幀),數值越小越快。1 幀約為 16.6ms(60 FPS)。 | |
| 操作體驗調整 | HistoryCapacity |
整數 | 100 |
1 ~ 1000 |
輸入歷程記錄的最大保存筆數。 |
| 回饋 | EnableVibration |
布林值 | true |
- | 是否啟用控制器震動回饋(true/false)。 |
VibrationIntensity |
浮點數 | 0.7 |
0.0 ~ 1.0 |
全域震動強度(0.0 ~ 1.0)。若覺得震動太強可改為 0.5。 |
|
| 快速鍵 | HotKeyModifiers |
字串 | "Alt, Control, Shift" |
- | 喚醒輸入框的修飾鍵組合。可填寫:Alt、Control、Shift、Win,多個修飾鍵請以逗號隔開。例如 Win + Ctrl + I 請設為 "Win, Control"。 |
HotKeyKey |
字串 | "I" |
- | 喚醒輸入框的主要按鍵(支援按鍵名稱如 "I" 或虛擬鍵碼如 "73")。 |
注意 1:修改設定後,請重新啟動程式以套用變更。🔄
注意 2:本應用程式具備「自動數值保護機制」。若手動在
appsettings.json中設定了超出「有效範圍」的數值,程式會在啟動或讀取時,自動將該數值修正回最接近的合理界限內,以確保系統穩定性。🛡️注意 3:本應用程式具備「搖桿死區遲滯(Hysteresis)機制」,會自動確保重置閾值與觸發閾值間有足夠緩衝,避免搖桿老化導致的輸入抖動。🎮
本應用程式提供細膩的震動回饋以增進操作直覺:
- 短促點擊感 🖱️:移動游標、導覽輸入歷程、或在選單中切換項目時觸發。
- 明確確認感 ✅:文字成功複製到剪貼簿、或視窗成功切換回目標視窗時觸發。
- 狀態重置感 🔄:清空文字輸入框、或將不透明度重設為 100% 時觸發。
- 強烈警告感
⚠️ :操作發生錯誤、輸入歷程到底/到頂、或寫入剪貼簿失敗時觸發。
這是觸控式鍵盤(TabTip.exe)的系統行為,本應用程式不會強制將其關閉。若要將其關閉,請按一下右上角的 X 按鈕,或使用控制器的 B 鍵。
若需使用控制器 B 鍵關閉觸控式鍵盤,可將其「鍵盤配置」設定為「遊戲控制器」。
可手動縮放視窗大小(使用手指或滑鼠)。
請檢查以下設定:
Windows 設定 → 時間與語言 → 輸入 → 觸控式鍵盤 → 「顯示觸控式鍵盤」的選項。
若需讓觸控式鍵盤一律顯示,可將此選項設定為「一律」。
此現象主要發生在 ROG Ally 系列掌機,由於本應用程式支援遊戲控制器 API(GameInput/XInput),若 Armory Crate SE(ACSE) 的控制模式設為「自動」,且已手動將本應用程式的操作配置設定為「遊戲控制器」,系統會在視窗開啟時自動將配置切換為「遊戲控制器」模式。
這會導致原本在桌面環境下用於模擬滑鼠游標的搖桿功能失效(轉為傳送原生控制器訊號),進而造成無法透過搖桿模擬滑鼠來拖曳視窗。
解決方法 ✅:
- 將 Armory Crate SE 的控制模式手動改為「桌面」。
- 直接使用觸控螢幕進行拖曳操作。
本應用程式遵循以下設計原則:
- 不與任何遊戲或應用程式進行互動。
- 不讀取、不修改、不注入任何第三方程式。
- 不模擬鍵盤或滑鼠輸入。
- 不自動貼上內容至其他視窗。
- 僅複製至 Windows 剪貼簿。
- 不偵測或識別任何特定應用程式。
- 僅在使用者主動操作時,開啟 Windows 觸控式鍵盤(
TabTip.exe)。 - 本應用程式視窗預設為最上層顯示(
TopMost),以確保在全螢幕或控制器操作環境下不被其他視窗遮擋。
總結而言,本應用程式之運作邏輯與系統內建之「記事本」或「剪貼簿管理員」本質相同,僅作為文字中轉使用,不具備任何修改、攔截或代理目標程式功能之能力。本專案僅設計為解決特定硬體環境下操作不便之一般性輔助應用程式。✨
本應用程式為第三方應用程式,未經 Microsoft Store 發佈,亦未以商業程式碼簽章憑證簽署。
因此,在首次下載或執行時,Microsoft SmartScreen 或部分防毒軟體可能會顯示「未受信任」或相關安全性警告。
本應用程式遵循前述設計原則,是否下載、執行或使用本應用程式,請依個人需求與環境自行評估。🛡️
本專案基於 .NET(C#)開發,支援透過 Visual Studio 或 .NET CLI 進行編譯與發佈。為了提供最便利的使用者體驗,建議發佈為「獨立的單一執行檔」。📦
請開啟終端機或命令提示字元,並切換至原始碼目錄(即 src\InputBox 資料夾下),執行以下指令:
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishReadyToRun=true參數說明:
-c Release:以 Release 模式進行建置。編譯器會對程式碼進行最大程度的最佳化,並移除除錯資訊,使應用程式執行速度更快、資源佔用更低。-r win-x64:指定目標執行階段為 Windows 64 位元作業系統。--self-contained true:啟用獨立式部署。這會將底層的 .NET 執行階段與應用程式一併打包,使用者無需在電腦上預先安裝任何 .NET 環境即可直接執行。-p:PublishSingleFile=true:啟用單一檔案發佈。會將應用程式本身及其所有依賴的函式庫全部打包進單一個.exe執行檔中,讓資料夾保持乾淨,方便使用者複製或分享。-p:PublishReadyToRun=true:啟用 ReadyToRun 預先編譯。這會在建置時提前將部分程式碼編譯為原生機器碼,減少執行時即時編譯的負擔,能顯著縮短應用程式的冷啟動時間,讓喚出輸入框的反應更迅速。
發佈完成後,編譯好的單一執行檔會生成在以下路徑:
bin\Release\net10.0-windows\win-x64\publish\InputBox.exe
- 在 Visual Studio 的「方案總管」中,右鍵點擊
InputBox專案,選擇 [發佈]。 - 若您已經有匯入專案內的
*.pubxml,請直接點擊 [發佈] 按鈕。 - 若需手動設定,請選擇目標為 資料夾,並在「顯示所有設定」中設定以下參數:
- 部署模式:獨立式
- 目標執行階段:win-x64
- 展開「檔案發行選項」,勾選 [產生單一檔案] 跟 [啟用 ReadyToRun 編譯]。
- 點擊 [儲存] 後再點擊 [發佈] 即可。
- 本專案使用 AI 服務輔助開發、翻譯、圖示生成、文件撰寫以及網頁製作。 🤖
- 本應用程式依賴
TabTip.exe以開啟 Windows 觸控式鍵盤,僅支援於 Windows 11 22H2(Build 22621)以上版本執行。- 實際系統功能(如觸控式鍵盤行為或鍵盤配置)可能因系統版本與功能下放狀況而有所差異。
- 本應用程式為非官方第三方應用程式,與任何遊戲或服務之開發商、發行商、代理商或營運單位皆無關聯,且無法保證在任何特定遊戲或服務環境中皆能符合使用者的操作需求或使用情境。
- 使用本應用程式所產生的任何後果,皆由使用者自行承擔。
本專案的本體採用 CC0 1.0 Universal 宣告釋出至公眾領域,並於適用法律允許之最大範圍內不主張任何著作權或相關權利。
您可以自由地複製、修改、發佈或執行本應用程式(含原始碼、文件以及網頁等等資源),完全無需取得授權。🕊️
本應用程式以 自包含部署(self‑contained) 形式發佈,內含執行時所需之第三方函式庫。
以下第三方元件之權利歸原作者所有,並遵循其各自之授權條款,不屬於 CC0 1.0 Universal 授權範圍。
- .NET Runtime:由 Microsoft 及其貢獻者開發並採用 MIT License 授權,作為本應用程式之底層執行環境,相關第三方聲明請參閱 THIRD-PARTY-NOTICES。
- Windows Forms(WinForms):由 Microsoft 及其貢獻者開發並採用 MIT License 授權,提供桌面視窗圖形介面基礎架構,相關第三方聲明請參閱 THIRD-PARTY-NOTICES。
- GameInput.Net:由 Cephy314 及其貢獻者開發並採用 MIT License 授權,用於存取 GameInput API。
- UsbVendorsLibrary:由 Cephy314 及其貢獻者開發並採用 MIT License 授權,用於存取裝置資訊。
- USB ID Database(usb.ids):由 Stephen J. Gowdy 等人維護的公開 USB 裝置識別碼資料庫。該資料庫採雙重授權(GNU General Public License(第 2 版或是更新的版本)/3-clause BSD License)。
- 本應用程式透過第三方函式庫 UsbVendorsLibrary 使用該資料庫,並於 自包含部署(self‑contained) 發佈之執行檔中以嵌入資源形式包含其內容。
- 本專案選擇依循 3-clause BSD License 條款隨附發佈,其完整版權與免責聲明請參閱發佈檔內的 usb_ids_LICENSE.txt。
本專案的詳細條款與免責聲明,請參閱隨附之 LICENSE 文件;關於第三方套件之完整版權宣告與授權文字,請參閱隨附於發佈檔內之 ThirdPartyNotices.txt 文件以及各框架專屬授權文件。