[C#]使用SharpShell實現Shell Icon Overlay功能

有在使用DropBox或是SVN之類的軟體的使用者應該都會注意到,這類型的軟體在透過檔案總管瀏覽時,都會透過icon的變化來明確的告知目前的狀態,既炫又清楚。這樣的功能稱做Shell Icon Overlay,在.NET中我們可以透過SharpShell來輕易的實現這樣的功能。 ...

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

[C#]使用SHEmptyRecycleBin API清除資源回收桶

玩了一下怎樣刪除檔案並送到資源回收桶,就會想到送到資源回收桶後要怎樣刪除,這邊稍微研究並記錄一下。 ...

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

[C#]使用ShowCaret amp; HideCaret控制元件上的插入符號

有時候我們會有需要能精確的控制元件是否顯示插入符號,這時可以使用ShowCaret與HideCaret兩個Win32 API來達成這個目的,這兩個API的宣告方式如下: [DllImport(“user32.dll”)] static extern bool ShowCaret(IntPtr hWnd); ...

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

[C#]使用Windows API Code Pack存取媒體櫃內存放的資料

要用程式存取媒體櫃內存放的資料,我們大概可以有兩種方法,一種是自行解析,一種則是使用包好的函式庫(像是Windows API Code Pack)去作控制。之所以能夠自行解析是因為媒體櫃的資訊是存放在附檔名為.library-ms的XML檔案中。 ...

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

[C#]偵測系統Power狀態的改變以及是否進入Sleep mode

筆者之前在[C#]使用GetSystemPowerStatus API查看目前電源使用狀態與[C#][VB.NET]使用SystemInformation.PowerStatus查看目前電源使用狀態這兩篇文章中介紹過了如何偵測電源使用狀態,當時年紀小是用Timer定時去Pooling更新狀態,這樣作法是不好的,應該避免使用Pooling,改用系統主動通知的方式下去更新。 要讓系統主動通知電源狀態變更,我們可以很簡單的繫結SystemEvents.PowerModeChanged事件,透過事件處理常式回傳的參數我們可以很容易的判斷出是目前系統是發生了怎樣的電源狀態改變。電源狀態的對應值可參閱PowerModes 列舉型別。 ...

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

[C#]取用.picasa.ini內存的現有資訊來做臉部偵測

Picasa應該很多人都有聽過、用過Picasa這套看圖軟體,這套看圖軟體功能強大且快速。該軟體裡面有個功能滿好玩的就是它可以對照片做臉部偵測,使用者可以為識別出來的人臉加上標記,後續還會自動偵測可能有該人士存在的圖片,讓整理的動作變得很簡單。 ...

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

[C#]在.NET程式中要如何指定Windows的ClassName去接收視窗的訊息

有使用過.NET程式做視窗訊息的接收的應該都會知道,好像沒有比較直接的方法去設定視窗的ClassName。就算去覆寫Form.CreateParams也不太行,若是指定的ClassName沒有註冊過,運行起來會丟出例外。 ...

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

[C#]如何使用TraceListener實作類似Visual Studio的輸出視窗

前陣子花了點時間在為開發中的產品加強除錯的功能,想要讓開發上發生的問題能直接在產品上就一目而然的看到,而不用另行開啟DebugView或是Log來看。簡單地說想要為產品加上類似是Visual Studio的輸出視窗,或者是DebugView類似的功能,能夠很即時的偵測並顯示出系統發出的Debug或是Trace訊息。為了達到這個需求,筆者用內建的TraceListener簡單的試做了一下,這篇隨手紀錄一下。 ...

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

[C#]如何使用Windows Shell做Zip檔的壓縮與解壓縮

在.NET程式中開發人員要做壓縮與解壓縮有很多種方法,可以用BCL內建的壓縮類別,或是用 DotNetZip與SharpZipLib之類的第三方元件庫,抑或是使用Windows Shell來做。內建的壓縮方式與第三方元件很多人都做過了介紹,使用上也大概都不是問題,但對於Windows Shell的使用方式可能就比較沒有那麼熟悉,所以這邊筆者稍微簡介一下怎樣用Windows Shell來做Zip檔的壓縮與解壓縮。 ...

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

[C#]如何偵測特定檔案是否為Lock狀態

要怎樣才能有效的偵測出檔案是被Lock住,這樣的問題在程式開發時開發人員常常會碰到,筆者看到多半的解法都是試圖去開開看檔案,當檔案無法開啟時就視為檔案被Lock住。這樣的做法雖不算錯,但總是不太精確,因為很多情況都有可能造成開檔錯誤,不見得都能很單純的這樣做判斷。 ...

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