我喜歡把網頁用的小圖檔用 Data Uri 直接寫進 HTML 或 CSS 裡,避免工具程式或範例網頁帶著小拖油瓶。記得在古早版本 Visual Studio 我有找到擴充套件,可在圖檔按右鍵選單快速將圖檔轉成 Data Uri 字串複製到剪貼簿。Visual Studio 已升級好幾次,我沒再 Survey 適用新版的套件,但這兩年我也常用 VSCode 開發 (像是寫 ESP/IoT 網頁也常用到 Data Uri),綁定 VS 或 VSCode 的工具用起來沒那麼方便,後來我索性改用線上服務搞定:

只是每回要轉 Data Uri 得連上網站,選檔案、上傳、複製,步驟說多不多,多做幾次仍讓人煩躁。前陣子研究出讓 .NET 6 Console 桌面小工具更優雅的做法,想想,與其花時間找順手工具,何不自己寫一個呢?

於是,薑、薑、薑、講~~~

程式用到之前介紹過的諸多技巧:.NET 6 單檔部署做到只需一個 EXE 檔即可使用、執行檔加上自訂圖示方便識別、WinExe 執行時不顯示 CMD 命令列視窗、進度及結果資訊以半透明文字顯示於桌面。

使用方法也很簡單,首次使用前先點兩下將程式註冊到檔案總管的右鍵選單,之後在檔案按右鍵會多出 To Data Uri 選單(為簡化邏輯,我沒有限定圖檔才顯示選單,而是遇到非圖檔再顯示不支援)。

至於在檔案總管新增自訂選單的原理,其實蠻簡單的,在 HKCU\Software\Classes\*\shell 加入兩筆 Registry 就好了,指定選單顯示文字與執行指令,檔案路徑以 %1 變數表示:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\ToDataUri]
@="Convert To Data Uri"

[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\ToDataUri\command]
@="\"X:\\Tools\\ToDataUri.exe\" %1"

完整程式碼我放上 Github 了,有興趣的同學請自取參考。

A data uri conversion tool example of how to add custom command to file explorer menu.


Comments

# by Xinxian

想請問一下,我仿照你的程式做了一個轉檔的功能,只有純粹使用 console開發 登錄好機碼後執行都很正常,但是有一點很讓我困擾 就是執行過程中會跳出黑黑的 console介面,看起來很醜 有沒有辦法不要讓他跳出來?

# by Xinxian

我找到方法了,原來是專案類型要設定成 WinExe

Post a comment