【笨嘴拙舌WINDOWS】实践检验之剪切板查看器【Delphi】

时间:2021-08-28 22:07:13

该程序能够监视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】

点击这里下载程序源码

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

  1. clipbrd剪切板查看器

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

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

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

  3. 转&colon; 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 &lpar;40&rpar; - 剪切板&colon; 复制&sol;粘贴文本&comma; html&comma; 图片&comma; 文件

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

随机推荐

  1. WinForm窗体代码结构优化

    选择系统新建WinForm程序,会生成FormMain.cs/ FormMain.Designer.cs/ FormMain.resx 当我们发现系统生成的FormMain.cs里面代码太多的时候,不 ...

  2. Emacs下编译C&plus;&plus;&sol;C程序&lt&semi;转&gt&semi;

    1.启动Emacs,在终端输入“emacs&”命令后回车(你也可以输入“emacs”命令,不过当你在使用Emacs的时候,当前终端 就不为你工作了:并且如果你熟练使用Emacs的话也可以输入“ ...

  3. javaweb一周总结(菜鸟)

    我的试用期开始了. 这是我的第一篇博客,这也是我作为java工程师的第六天,主要是为了记录一周内出现的问题以及一些工作上的解答,吐槽一句工作的确和想的不一样之后直接记录下吧. 由于拥有工作平台看不到底 ...

  4. 201521123056《Java程序设计》 第2周学习总结

    1. 本周学习总结 String类: 不可变字符串型: 粗略介绍了枚举类型: 完全限定类名: 泛型数组列表的应用: 2. 书面作业 Q1.使用Eclipse关联jdk源代码,并查看String对象的源 ...

  5. java points&lbrack;复习&rsqb;

    1 - & 与 && 的区别: &:不管左边是true还是false,右端都会进行运算: &&:当左端为false时,右端不再进行运算: 即在与运算时, ...

  6. 反射的应用,jdbc封装

    实现在Java中查询数据库并保存在Java中 1.创建Dept类(要查找的类) package cn.ljs; public class Dept { private int deptno; priv ...

  7. pip解决超时问题(timeout)

    我们下载python的库一般会使用pip工具.但在下载的过程中经常会timeout,这是因为资源在国外,我们国内某些资源下载速度特别慢,主要有两种方法解决. 一.设置pip timeout超时时间 创 ...

  8. angular2项目关于动画的处理

    animations动画在angular2官网里面已经讲解很详细了,那么动画功能在实际项目中应该如何组织文件,动画文件放在哪个位置,如何来组织结构使得动画模块和其他模块之间运作调理清晰呢,下面参照Ni ...

  9. &lowbar;&lowbar;dict&lowbar;&lowbar;和dir()的区别:未完

    1.  dir()是一个函数,返回的是list.__dict__是一个字典,键为属性名,值为属性值: 2.  dir()用来寻找一个对象的所有属性,包括__dict__中的属性,所以说__dict__ ...

  10. 51nod 1476 括号序列的最小代价&lpar;贪心&plus;优先队列&rpar;

    题意 我们这有一种仅由"(",")"和"?"组成的括号序列,你必须将"?"替换成括号,从而得到一个合法的括号序列. 对于 ...