该程序能够监视Windows剪切板的内容(文字和图片)

其思路是

先调用SetClipBoardViewer(Self.Handle),让Windows剪切板内容发生改变之后,通知本程序;

然后截获WM_DRAWCLIPBOARD消息来查看剪切板里面的内容;

最后关闭程序时调用changeclipboardChain(handle,hwndNextViewer)注销监视剪切板

再处理WM_CHANGECBCHAIN消息来真正撤销

主要代码如下:

procedure TForm1.FormCreate(Sender: TObject);
begin
hwndNextViewer:= SetClipBoardViewer(Self.Handle);
end; procedure TForm1.DrawclipBoard(var message: Tmessage);
begin
lbl1.Caption := '' ;
if (hwndNextViewer<>) then
SendMessage(hwndNextViewer,message.Msg,message.WParam,message.LParam);
PaintClip;
end; procedure TForm1.FormDestroy(Sender: TObject);
begin
changeclipboardChain(handle,hwndNextViewer);
end; procedure TForm1.ChangecbChain(var message: Tmessage);
begin
if (message.WParam=hwndNextViewer) then
hwndNextViewer := message.LParam
else if(hwndNextViewer<>) then
SendMessage(hwndNextViewer,message.Msg,message.WParam,message.LParam);
end; procedure TForm1.PaintClip;
Var
htext,hBitmap:HGLOBAL;
str:String;
pch:Pointer;
len:Integer;
begin
openclipboard(Self.Handle);
htext := GetClipboardData(CF_TEXT);
hBitmap := GetClipboardData(CF_BITMAP);
if htext<> then
begin
pch:=globallock(htext);
len:= globalSize(htext);
SetString(str,Pchar(pch),len);
lbl1.Caption := lbl1.Caption + str;
globalunlock(htext);
end;
if hBitmap<> then
begin
img1.Picture.Bitmap.Handle := hBitmap;
end;
CloseClipBoard;
end;

点击这里下载程序源码

【笨嘴拙舌WINDOWS】实践检验之剪切板查看器【Delphi】的更多相关文章

  1. clipbrd剪切板查看器

    本文,我们来学习一下简单的概念,即,如何查看系统剪贴版里面有什么内容?   如果要想看.或者验证系统剪贴版里面都有什么内容,最为简单的方法就是通过"粘贴"的操作来验证!   但是, ...

  2. 【Windows API】OpenClipboard --- 剪切板(转)

    原文转自 http://www.cnblogs.com/wind-net/archive/2012/11/01/2749558.html 剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其 ...

  3. 转: Windows如何打开和使用事件查看器管理计算机

    方法/步骤   1 右键单击"我的电脑"(win8中名称为"这台电脑.This Computer"),选择"管理",点击. 步骤阅读 2 出 ...

  4. WINDOWS SERVER 2016 设置使用照片查看器查看图片

    1.使用win+R快捷键快速打开运行,输入regedit打开注册表 2.在注册表中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewe ...

  5. delphi备份恢复剪切板

    http://blog.csdn.net/youthon/article/details/7327776 delphi备份恢复剪切板         分类:            Delphi编程20 ...

  6. Windows 10 - 查看系统剪切板历史

    在之前的Windows版本(1809之前),Windows的剪切板历史一直都是对用户不可见的. 也就是它只保留最后一次的剪切记录,但是这个记录是什么,不知道!只能粘贴出来才知道. 但是现在变了,Win ...

  7. 【笨嘴拙舌WINDOWS】实践检验之GDI缩放

    SetMapmode(dc,MM_Text); //先继承MM_TEXT的属性 SetMapMode(dc,MM_ANISOTROPIC); SetWindowExtEx(dc,rect.Right, ...

  8. 监视 Windows 剪切板

    一.先看代码 import win32con,win32gui import win32clipboard as cb class MyWindow(): def __init__(self): #注 ...

  9. 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件

    [源码下载] 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 作者:webabcd 介绍重新想象 Windows 8 Store ...

随机推荐

  1. js弹出图片原图效果

    1.将js方法独立出来common.js function openwin(src){ var basePath = document.getElementById("basePath&qu ...

  2. 白话CSS3的新特性

    声明:这篇文章不是手册,所以不会说的很详细,只是告诉初学者CSS3显著的改进有啥,高手老手绕行. 一.在边框上的改进 1.可以给方框加圆角了,值越大越圆,解决了过去大方框的不美观 2.可以给控件加阴影 ...

  3. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  4. POJ 2105

    #include <iostream> #include <cmath> #include <string> using namespace std; int ma ...

  5. hadoop,spark,linux上常用命令

    记下常用命令,慢慢补充 1.hadoop 查看hdfs上的目录: hadoop fs -ls /给hdfs上目录授予权限:   hadoop fs -chmod 777 /tmp/hive 在hdfs ...

  6. sql 语句的各种连接

    数据表: 1.两种连接表现方式一样 其中 where 条件语句可以省略,当时join 的on 语句不可省略 2.左连接,右连接 左连接:返回左表的所有数据,并根据条件返回左右表的连接结果,如果未匹配到 ...

  7. DB2对年份的处理Year()

    public DataSet GetCustomerAllocListByQC(CustomerAllocQueryDataContract aQC) { StringBuilder sql = ne ...

  8. selenium测试框架篇

    做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是 ...

  9. iis 重启 (三种方法)

    iis 重启 (三种方法) WINDOWS提供WEB服务的IIS有时候会出现访问过大导致网站打不开,这时重启IIS是最好的选择. 方法/步骤 1 1.界面操作 打开“控制面板”->“管理工具”- ...

  10. MongoDB (八) MongoDB 文档操作

    一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基 ...