天天看點

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

作業系統:Windows Server 2008 R2

內建開發環境(IDE):Microsoft Visual Studio 2010

開發語言:c#

檔案》建立》項目

.NET Framework可以選擇2.0版本,也可以選擇4.0版本;

項目類型選擇:Windows窗體應用程式

輸入項目名稱,确定

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

項目建立成功,如下圖:

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

修改窗體的“FormBorderStyle”屬性為“none”,實作一個沒有邊框的窗體

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

修改後視窗設計器中顯示如下:

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

依次按下圖修改其它屬性,屬性值黑體加粗的是修改過的

C#軟體開發執行個體.私人訂制自己的螢幕截圖工具(二)建立項目、注冊熱鍵、顯示截圖主視窗

屬性說明:

ShowIcon=False,不顯示窗體的圖示;

ShowInTaskbar=False,使窗體不在Windows工作列中出現;

SizeGripStyle=Hide,禁用拖動窗體右下角可以改變大小的功能;

WindowsState=Minimized,視窗啟動後最小化;

設定完這些屬性後,編譯,運作,程式是在運作狀态,但是卻看不到程式的視窗;

這裡需要使用WindowsAPI

注冊熱鍵:RegisterHotKey

RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);

取消熱鍵注冊:UnregisterHotKey

該函數釋放調用線程先前登記的熱鍵。

擷取熱鍵ID:GlobalAddAtom

隻适用于桌面應用程式。

向全局原子表添加一個字元串,并傳回這個字元串的唯一辨別符(原子ATOM)。

截圖視窗實際是一個沒有邊框,沒有菜單,沒有工具欄的一個全屏頂層視窗。

當按下熱鍵時,程式首先擷取整個螢幕的圖檔,儲存到“screenImage”變量中;然後添加遮罩層,将其設定為窗體的背景圖,将視窗大小設定為主螢幕的大小,顯示視窗;讓人感覺是在桌面上加一個半透明的遮罩層一樣。

代碼如下:

關閉視窗時,要取消熱鍵注冊,代碼如下:

到這裡,熱鍵注冊,截圖視窗的顯示等功能已經基本完成。

注意:測試本代碼時最好在窗體上添加一個按鈕,用于關閉或隐藏截圖視窗;因為截圖視窗是全屏的,不能響應ESC鍵,是以隻能通過任務管理器來結束程序退出。調試時最好是在窗體上添加一個Label控件來顯示需要的變量資訊,因為截圖視窗是頂層的全屏視窗,斷點被命中時根本沒辦法操作VS。

繼續閱讀