Visual Studio
在穩定性方面增強不少
筆者在使用時很少出現BUG的情況
而且Visual Studio
在網絡應用編程與圖像處理方面也比原來版本增強了不少
開發效率有了提高
本篇文章將介紹如何利用Visual Studio
所提供的控件編寫一個簡單的屏幕抓捕程序
本篇文章具有一定的實用性
讓大家對ContextMenuStrip
控件和NotifyIcon
控件有所了解
且在應用程序開發中需要經常用到這些控件
希望對大家有所幫助
打開 Visual Studio
在文件 (File) 菜單上
單擊新建項目 (New Project)
在新建項目 (New Project) 對話框的模板 (Templates) 窗格中
單擊 Windows 應用程序(Windows Application)
單擊確定 (OK) 如圖
選擇Form
窗體
在Form
窗體中添加ContextMenuStrip
控件
選中ContextMenuStrip
控件輸入<抓捕當前屏幕>與<退出程序>
我們需要在程序最小化時
作為調用程序右鍵菜單的功能選項
如圖
隨後我們需要在Form
中添加NotifyIcon
控件
NotifyIcon
控件作為程序圖標顯示到窗體的任務欄中
我們選擇NotifyIcon
控件的Icon屬性選擇一個喜歡的圖標
接下來最重要的一步就是進行圖標和快捷菜單的綁定了
我們需要選擇NotifyIcon
控件的ContextMenuStrip屬性
選中菜單下拉框中的ContextMenuStrip
這樣就進行綁定了
如圖
好了現在界面工作我們已經完成了接下來我們需要進行輸入代碼的工作了
首先進行聲明
Imports SystemRuntimeInteropServices
Imports SystemDrawingImaging
Public Class Form
_
Private Shared Function BitBlt(ByVal hdcDest As IntPtr ByVal nXDest As Integer ByVal nYDest As Integer ByVal nWidth As Integer ByVal nHeight As Integer ByVal hdcSrc As IntPtr _
ByVal nXSrc As Integer ByVal nYSrc As Integer ByVal dwRop As Integer) As Boolean
End Function
_
Private Shared Function CreateDC(ByVal lpszDriver As String ByVal lpszDevice As String ByVal lpszOutput As String ByVal lpInitData As IntPtr) As IntPtr
End Function
Private picture As Bitmap = Nothing 以picture作為圖片格式的聲明
聲明Public Sub capture_window()
Public Sub capture_window()
MeVisible = False
Dim capture As IntPtr = CreateDC(DISPLAY Nothing Nothing Nothing)
Dim get As Graphics = GraphicsFromHdc(capture)
創建一個新的Graphics對象
picture = New Bitmap(ScreenPrimaryScreenBoundsWidth ScreenPrimaryScreenBoundsHeight get)
根據屏幕大小創建一個相同大小的Bitmap
Dim get As Graphics = GraphicsFromImage(picture)
Dim get As IntPtr = getGetHdc() 獲取屏幕的句柄
Dim get As IntPtr = getGetHdc() 獲取位圖的句柄
BitBlt(get ScreenPrimaryScreenBoundsWidth ScreenPrimaryScreenBoundsHeight get _
) 把當前屏幕復制到位圖中
getReleaseHdc(get) 釋放屏幕句柄
getReleaseHdc(get) 釋放位圖句柄
pictureSave(CapturePicturejpg ImageFormatJpeg)
MessageBoxShow( 已經把當前截取屏幕保存到CapturePicturejpg檢查程序根目錄)
MeVisible = True
End Sub
進入 捕獲當前屏幕ToolStripMenuItem_Click事件中
Private Sub 捕獲當前屏幕ToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles 捕獲當前屏幕ToolStripMenuItemClick
capture_window() 調用函數開始捕獲程序
End Sub
進入 退出程序ToolStripMenuItem_Click事件中
Private Sub 退出程序ToolStripMenuItem_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles 退出程序ToolStripMenuItemClick
NotifyIconVisible = False
關閉系統
MeClose()
End Sub
好了現在我們運行程序進行測試一下注意如果我們不想看到Form應用程序窗體出現在任務欄中而只是想把程序圖標顯示在任務欄中請選擇Form窗體中的屬性ShowInTaskbar=False如圖
運行程序選中抓捕當前屏幕即可如圖圖片將會保存在你程序的根目錄中圖片名稱為CapturePicturejpg如圖所示
程序成功運行一個簡單的屏幕捕捉程序就完成了大家有興趣的話還可以再去添加其他的功能如只針對應用程序窗體進行捕捉等使得應用程序的功能更多
From:http://tw.wingwit.com/Article/program/net/201311/13130.html