VB.NET实现Windows剪贴板监视器

Windows剪贴板

剪贴板(ClipBoard)是内存中的一块区域,是Windows内置的一个非常有用的工具,通过小小的剪贴板,架起了一座彩桥,使得在各种应用程序之间,传递和共享信息成为可能。然而美中不足的是,剪贴板只能保留一份数据,每当新的数据传入,旧的便会被覆盖。

相关Windows API

最主要的是SetClipboardViewer,每当剪贴板的内容发生变化时,该函数通过WM_DRAWCLIPBOARD消息将窗口加入被通知的窗口链。
由于剪贴板观察器链中下一个窗口的句柄还没有返回,应用程序不应传递它在SetClipboardViewer
调用过程中接收到的WM_DRAWCLIPBOARD消息。
如果要从剪贴板观察器链中去掉窗口链,则应用程序必须调用ChangeClipboard成员函数。

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

wndproc函数

操作系统向应用程序发送一系列消息,如左键按下和左键抬起,应用程序将通过GetMessage等方法最终将消息提交到窗口过程(WndProc[英文全称windows 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.ContainsText() = True Then
                    Label1.Text = Clipboard.GetText()
                End If
                ‘显示剪贴板中的图片信息
                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

效果:

源码下载:VB.NET实现Windows剪贴板监视器

时间: 2024-10-10 20:58:44

VB.NET实现Windows剪贴板监视器的相关文章

c#实现Windows剪贴板监视器

Windows剪贴板 剪贴板(ClipBoard)是内存中的一块区域,是Windows内置的一个非常有用的工具,通过小小的剪贴板,架起了一座彩桥,使得在各种应用程序之间,传递和共享信息成为可能.然而美中不足的是,剪贴板只能保留一份数据,每当新的数据传入,旧的便会被覆盖. 相关Windows API 最主要的是SetClipboardViewer,每当剪贴板的内容发生变化时,该函数通过WM_DRAWCLIPBOARD消息将窗口加入被通知的窗口链.由于剪贴板观察器链中下一个窗口的句柄还没有返回,应用

tmux复制到windows剪贴板/粘贴板的坑

以下所有操作都是在windows下面用putty连接linux centos6的情景下. 一直很纳闷为什么在tmux模式下不能把复制到的文字放到系统的粘贴板里面呢?通过层层阻碍,终于找到了原因. 去掉 ~/.tmux.conf中 #设置鼠标可用#setw -g mode-mouse on 如果你在最开始的时候学别人的配置,加上了这个选项,那么你就会发现在tmux下不能复制文字,去掉就可以了. 现在就可以直接选中要复制的文字,然后右键粘贴. copy-mode模式下复制粘贴: bind-key [

windows剪贴板

0x01  Windows剪贴板 Windows剪贴板是一种比较简单同时也是开销比较小的IPC(InterProcess Communication,进程间通讯)机制.Windows系统支持剪贴板IPC的基本机制是由系统预留的一块全局共享内存,用来暂存在各进程间进行交换的数据:提供数据的进程创建一个全局内存块,并将要传送的数据移到或复制到该内存块:接受数据的进程(也可以是提供数据的进程本身)获取此内存块的句柄,并完成对该内存块数据的读取. 为使剪贴板的这种IPC机制更加完善和便于使用,需要解决好

批处理将字符串输出到Windows剪贴板

批处理将字符串输出到Windows剪贴板 2016-06-30 23:29 339人阅读 评论(0) 收藏 举报 版权声明:作者:N3verL4nd 出处:http://blog.csdn.net/x_iya 借助于clip.exe(C:\Windows\System32\clip.exe) [cpp] view plain copy C:\Windows\System32>clip /? CLIP 描述: 将命令行工具的输出重定向到 Windows 剪贴板.这个文本输出可以被粘贴 到其他程序中

Windows 性能监视器的基本指标(CPU,内存,硬盘参数)

转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题,因此,今天给出Windows 性能监视器的一些基本指标(CPU,内存,硬盘参数),希望对大家将来优化和分析问题提供帮忙. Windows -Processor 指标名称 指标描述 指标范围 指标单位 CPU利用率(% Processor Time) % Pr

Windows文件监视器 1.0 绿色版

软件名称:软件名称: Windows文件监视器 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP / Win2008 软件大小: 176 KB 图片预览: 软件简介: 本程序可以对指定的某个盘符或某个目录进行监视,监视的内容包括任何文件及子文件夹的新建.删除.重命令.大小修改等等,并显示监视的结果 软件下载地址:电信下载 联通下载

Windows性能监视器

前端时间在做动态目标监控,应用程序需要考虑大数据量和多用户并发的操作,系统的性能是解决方案实施性的重要度量.这里简单的记录下Windows中性能监视查看和简单分析. 一般操作系统性能主要涉及到的问题主要有:处理器使用情况.内存占有量.磁盘I/0操作以及网络流量等. 查看Windows性能情况,大部分情况下是通过 “Windows任务管理器”,可以通过在 ”命令行” 中输入 : taskmgr 来弹出任务管理器. ”任务管理器”可以查看:CUP的使用率.内存的使用率 以及 网络传输量情况. 使用W

Ditto - Windows剪贴板增强小工具,方便复制粘贴多条记录

在平时的工作中,好多地方需要重复的复制粘帖一些重复性的代码,频繁的Ctrl+C.Ctrl+V导致效率很低,而且时间长了会很烦,Windows自带的剪切板功能一次只能进行一条记录操作,单一的不行,与提高工作效率产生了严重的矛盾.还好,有Ditto! Ditto 是 Windows 下一款免费开源的剪贴板增强软件,支持64位操作系统,支持中文,并且提供免安装的便携版.安装后以系统托盘运行.使用它,你只需像往常一些复制东西,然后按下Ctrl+`(数字1前面那个按键),就可以唤出它的界面了,里面记录了所

Zabbix 利用Windows性能监视器添加对系统各项资源监控

笔者今天受一个帖子的启发,发现可以使用Windows的性能监视器监控基本上所有的系统资源情况,下面是教程: 性能监视器位置在 控制面板-管理工具中 打开后默认就一项CPU占用的监控,下面以添加硬盘空闲时间做示例 1:监控图形上面右键 添加计数器 2:然后找到PhysicalDisk项 选择%Idle Time,点击添加,不知道项目的含义可以点击左下角的 显示描述 3:接着就能在监控图形上面看到空闲率的图形了,可以看到和任务管理器显示的一致 4:确认一致后,在图形上面 右键-属性,可以看到有几个添