在 PowerShell 要爬網站或存取網頁,Invoke-WebRequest 是不二選擇。有時我們會存取具有 Session 狀態的網頁,例如:要先登入後才能存取某些功能、或在 A 網頁儲存設定後到 B 網頁看結果。實務上 Session 概念多半依賴 Cookie 實現 (相關原理可參考 再探...

在網頁使用相對網址,瀏覽器會自動幫忙轉成絕對網址,如果是在 C# 程式寫程式推算,該怎麼寫? 一開始我又用傳統思維開始想演算法,先轉成 Uri 物件解析出 Host、PathAndQuery 再算位置弄半天,後來發現自己耍笨了,Uri 建構式已直接支援。 public Uri (Uri baseUr...

玩 ESP/Arduino 想在 OLED 或點陣式 LED 顯示中文,中文點陣字型來源一直是個問題。 關於中文點陣字型,多年前我有研究出倚天中文跟國喬中文的字型檔解析(延伸閱讀:Coding4Fun - 點陣中文字型顯示),但授權是個無法迴避的問題。在網路上不難找到這兩套絕版軟體的字型檔案,使用倚...

這是我開始寫 PowerShell 模組時常遇到的問題,迷惑了一陣子才恍然大悟。問題主要發生在模組開發者身上,情境是對模組改版重新 Publish,升級或重新安裝模組測試,有時能正確更新,有時卻一直用到舊版,有時還會誤以為沒修好,白繞一大圈。 例如之前文章的例子:Repository 上已經有 1....

要存取網站內容,PowerShell 有個 Invoke-WebRequest 滿足各式需求(延伸閱讀:野外求生系列- 無工具WebApi 徒手測試-黑暗執行緒),甚至呼叫 WCF 也難不倒它。 我有個需求是要偵測位於負載平衡設備(Network Load Balancer,以下簡稱 NLB)後方的...

開發小工具時,把相依的 DLL 包進單一 EXE 是很有用的技巧,如此使用者只需複製單一檔案到特定目錄或桌面便能執行,省去跑安裝程式或建立資料夾放入 EXE + DLL 的麻煩。 要達成這個理想,早期我是用 ILMerge 實現(參考:Visual Studio編譯小技巧:工具程式一檔搞定),但實務...

在 Windows 刪除網路資料夾目錄時偶爾會遇到 Thumbs.db 被檔案總管鎖定造成無法刪除: Thumbs.db 是 Windows 用來儲存照片、影片縮圖的系統檔案,以前會散落在包含圖片、影片的資料夾,檔案總管檢視資料夾時會用到,等看完要刪除該資料夾時便會因 Thumbs.db 檔案被鎖...

昨天介紹完可以用 C# 寫 ESP32 開發板程式的美妙開源平台 - nanoFramework,我迫不及待想把先前 Arduino C++ 寫的作品移植過來,但光是想接 I2C OLED 顯示器輸出文字就卡住三、四個小時... 其實早有心理準備,nanoFramework 仍在發展初期,用的 Nu...

陸續用 VSCode + PlatformIO 寫了幾個 ESP 開發板 C++ 程式,琢磨出有效率寫出 Web 控制介面的開發模式,尋找及安裝硬體元件程式庫已難不倒我,自己算是符合「拿到新東西能讓它動起來」的基本要求。 經過這段時間磨練,雖勉強能用 C++ 拼湊出會動的程式,但身為跨界的資深 .N...

從 Visual Studio 複製程式碼貼到 Word/Outlook/PowerPoint 時保留顏色標示是很常見的需求。很久以前 VS2010 剛推出時複製貼上中文有個 Bug,我還寫了土砲工具解決呢。(謎之聲:可以不要一直想當年嗎?) 之後它一直是 VS 的內建功能,但到 VS2017 時似...

在 PowerShell 中想提前結束程式有好幾種寫法,例如 return、exit,之前沒認真比過差異,胡亂用踩了坑,特整理筆記備忘。 先用以下 Test-ExitScript.ps1 程式示範,依傳入參數模擬四種提前結束 Script 的做法 - return、break、exit 及 [Env...

中文編碼解析線上版上線已經兩年,只要對中文編碼方式存疑,開網頁貼文字看結果,多半能很快得到答案。 上週讀者 ChrisTorng 提了一個很棒的建議:他看到我在文章裡為了解說 Unicode 罕字的 BIG5、UCS2、UTF8 編碼對映還特別在擷圖塗色標示,便提議我用分隔符號或表格排程讓同一字元的...

好久沒有鬼打牆,PO 文紀念兼反省。 有個網站代理下載功能,要從 HTML 用 Regex 擷取某個下載 URL,經過加密轉交 ASPX,由 ASPX 自其他主機下載內容再轉回瀏覽器。 (資安提醒:設計這類應用請務必確認 URL 不存在被使用者竄改的風險,以免淪為跳板或後門) 處理過程發現 HTML...

多年前研究過集保罕字集與 BIG5 造字,當時我用官方提供的編碼對照表(Map_code.txt)寫過一版 .NET 轉換函式。近期接到通報說程式跑出來的結果跟官方轉換工具不一樣,不知是不是操作方法有問題?,雖然懷疑程式是照著官方對照表轉換為何會有出入?莫非程式有 Bug?但既然官方有提供轉換工具,...

來個小測驗。請用大腦執行以下 C# ,說出 s.Legnth 及 b.Length 分別是多少? void Main() { string s = "#明𠅙鮮𧰟"; Console.WriteLine(s.Length); byte[] b = Encoding.UT...