[C#]使用BitmapDecoder快速取用圖檔內含的縮圖

為了記憶體的佔用或是速度上面的考量,有的時候我們會有為圖檔產生縮圖的需求。產生縮圖的方法很多,多半都需要耗費一點時間,所以有時候我們可能會考慮直接取用圖檔本身就內含的縮圖。 ...

November 6, 2013 · 2 min · 671 words · Larry Nung

[C#]使用ControlPaint.DrawBorder調整控制項外框的顏色

最近跟UX Team合作體驗到能將設計好的UI完美呈現真是考驗程式人員的能力,UX Team的設計人員考量的細節都跟程式開發人員不同,在某些細節上比程式人員都還講究,就像是控制項的邊框顏色不對都不行。但是幾乎所有的控制項都不具備設定邊框顏色的能力,這該怎麼辦呢?想來想去都只能自己下去繪製控制項的邊框。 ...

November 6, 2013 · 1 min · 481 words · Larry Nung

[C#]使用ExifLibrary簡易快速的擷取圖片的Exif資訊

最近在玩讀取圖片的Exif資訊,試了一下.NET內建的方法與別人包好的類別,但都不怎麼好用,最後找到CodeProject的ExifLibrary for .NET這篇,試起來功能算是滿齊全的,用起來也很容易,這邊稍稍記錄一下。 ...

November 6, 2013 · 2 min · 855 words · Larry Nung

[C#]使用Faker.Net輔助建立假的數據資料

有時候在做些測試時,我們會期望有一定的資料量來做測試,這時我們可能會用程式來產生大量假的資料,而Faker.Net就是可以輔助我們完成這個需求的工具。 ...

November 6, 2013 · 2 min · 717 words · Larry Nung

[C#]使用FindFirstFile、FindNextFile API實做EnumerateFiles

.NET 4.0開始Directory類別新增了EnumerateFiles函式,該函式能提供較有效率的方式找尋檔案,不會等到整個搜尋動作完成才回傳。在.NET 4.0以前我們則可以用FindFirstFile、FindNextFile這幾個API來達到類似的效果。 ...

November 6, 2013 · 1 min · 389 words · Larry Nung

[C#]使用InternetGetConnectedState API偵測目前電腦網路的連線狀態

有時候我們會有需要為程式加入偵測網路連線的能力,也許是當網路不通時秀些提示,或是將某些程式的功能給停用。這時我們可能會傾向採用NetworkChange.NetworkAddressChanged與NetworkChange.NetworkAvailabilityChanged這兩個事件去偵測網路環境是否有所變動,或者用Timer加Ping的方式去偵測網路是否可以外連。上面兩種方式在.NET程式中還算滿常用的方法,但是以筆者的經驗來說NetworkChange在多網卡環境下運作跟期望的可能會有所出入,而就算事件正常觸發也可能需搭配其它方法偵測網路是否是通的,至於Ping的偵測方式,它需要實際的去送封包偵測,不僅需考慮可能會被封鎖,也要考慮封包傳送的額外負擔,如果能直接跟系統詢問連線狀態一定會比較好一點。所以在做類似的功能時使用InternetGetConnectedState API可能也是一個不錯的選擇,這邊隨手將之稍微紀錄一下。 ...

November 6, 2013 · 2 min · 882 words · Larry Nung

[C#]使用Microsoft Translator Soap API實作翻譯功能

要使用Microsoft Translator Soap API實作翻譯功能,首先我們必須要有Bing的開發者ID,可至Bing Developer網站申請。可點選『註冊以使用 Bing 搜尋 API 並建立 AppID』或是透過『建立您的 AppID』開始進行申請。 ...

November 6, 2013 · 4 min · 1996 words · Larry Nung

[C#]使用Mutex實現單一程式執行個體的注意事項

相信大家都知道在.NET程式中若要實現單一程式執行個體,一般來說有幾種方法,像是去判斷是否已經有開啟的Process是相同的程式、用Mutex與Semaphore之類的技術來判斷是否程式正在開啟。但是很多網路上的文章都忽略了在用Mutex實現單一程式執行個體時,其實會有些必須要注意的地方,導致於在實際運用上沒有發揮到該有的效果。 ...

November 6, 2013 · 3 min · 1004 words · Larry Nung

[C#]使用NBug函式庫為程式加上錯誤回報機制

NBug是一開放源碼的函式庫,可輕鬆快速的為應用程式加上錯誤回報機制的,當錯誤發生時NBug能幫我們自動產生開發人員所需的錯誤報告,內含詳細的錯誤內容資訊與MiniDump File,錯誤報告會以壓縮檔的方式儲存在指定位置,沒指定的話通常是存放在當前目錄下。 ...

November 6, 2013 · 4 min · 1533 words · Larry Nung

[C#]使用Reflection檢查指定類別是否含有預設建構子

昨天在抽空調整一下專案程式碼,用Attribute與反射搭配的機制去做一些載入的動作,讓程式擴充時能專注在新加入的類別就好,程式啟動自行會用反射將該載入的載入。但由於目前尚未把現有的程式改的比較一致,每個類別的建構子不盡相同,因為我預期這些類別應該都要有預設的建構子,不夠的資料應該後續再透過別條路下去取得,所以這邊只先用反射載入含有預設建構子的類別,其它沒有預設建構子的類別就先照本來的路做些特殊處理,待後續再行重構。 ...

November 6, 2013 · 2 min · 677 words · Larry Nung