VB.net 监视Windows剪切板中数据变化
2016-02-27 23:30
756 查看
新建一个Winform,拉进去一个PictureBox控件,完整代码如下,实现效果即当剪切板中更新图片数据的时候,picturebox中自动显示出来剪切板中的图片
Public Class clipboardMon #Region " Definitions " 'Constants for API Calls... Private Const WM_DRAWCLIPBOARD As Integer = &H308 Private Const WM_CHANGECBCHAIN As Integer = &H30D 'Handle for next clipboard viewer... Private mNextClipBoardViewerHWnd As IntPtr 'API declarations... Declare Auto Function SetClipboardViewer Lib "user32" (ByVal HWnd As IntPtr) As IntPtr Declare Auto Function ChangeClipboardChain Lib "user32" (ByVal HWnd As IntPtr, ByVal HWndNext As IntPtr) As Boolean Declare Auto Function SendMessage Lib "User32" (ByVal HWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Long #End Region #Region " Contructor " Public Sub NewViewer() 'InitializeComponent() 'To register this form as a clipboard viewer... Clipboard.Clear() mNextClipBoardViewerHWnd = SetClipboardViewer(Me.Handle) End Sub #End Region #Region " Message Process " 'Override WndProc to get messages... Protected Overrides Sub WndProc(ByRef m As Message) Select Case m.Msg Case Is = WM_DRAWCLIPBOARD 'The clipboard has changed... '########################################################################## ' Process Clipboard Here :)........................ '########################################################################## SendMessage(mNextClipBoardViewerHWnd, m.Msg, m.WParam, m.LParam) '显示剪贴板中的图片信息 If Clipboard.ContainsImage() = True Then PictureBox1.Image = Clipboard.GetImage() PictureBox1.Update() End If Case Is = WM_CHANGECBCHAIN 'Another clipboard viewer has removed itself... If m.WParam = CType(mNextClipBoardViewerHWnd, IntPtr) Then mNextClipBoardViewerHWnd = m.LParam Else SendMessage(mNextClipBoardViewerHWnd, m.Msg, m.WParam, m.LParam) End If End Select MyBase.WndProc(m) End Sub #End Region Private Sub clipboardMon_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load NewViewer() End Sub End Class
相关文章推荐
- 关于vba读取excel文件
- vb.net利用webbrowser下载(加载完成判断、多线程、委托)
- VBA 获取Sheet最大行
- VC调用VB DLL
- VBA 入门笔记
- VA、VAO和VBO API备忘
- vbird笔记2016-02-24
- 关于使用VBO渲染
- LCD时序中设计到的VSPW/VBPD/VFPD/HSPW/HBPD/HFPD总结
- QQ Auto Login Visual Basic Script
- OpenGL VBO, PBO与FBO
- vba给数组赋值
- Excel“工程不可查看”及VBA工程密码…
- vb.net如何使用代码给DataGridView…
- vb.net 判断文件编码的方法
- vb.net防止WebBrowser在新窗口中打…
- vs2010 .vb如何生成类库(DLL)
- vb.net webbrowser控件如何获取鼠…
- vb.net DateTimePicker如何显示某…
- 如何使用vb.net多线程