剪切板-监视剪贴板

相关资料:

http://user.qzone.qq.com/513187410/blog/1265981516

实例原码:

 1 unit Unit1;
 2
 3 interface
 4
 5 uses
 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 7   Dialogs, StdCtrls, ExtCtrls,
 8   Clipbrd, jpeg; //Clipboard使用
 9
10 type
11   TForm1 = class(TForm)
12     Image1: TImage;
13     ListBox1: TListBox;
14     Image2: TImage;
15     procedure FormCreate(Sender: TObject);
16     procedure FormClose(Sender: TObject; var Action: TCloseAction);
17     procedure ListBox1Click(Sender: TObject);
18   private
19     { Private declarations }
20     //处理WM_DRAWCLIPBOARD消息过程
21     procedure WMDrawClipBoard(var AMessage:TMessage);message WM_DRAWCLIPBOARD;
22   public
23     { Public declarations }
24   end;
25
26 var
27   Form1: TForm1;
28
29 implementation
30 {$R *.dfm}
31
32 var
33   //观察链中下一个窗口句柄
34   NextClipHwnd:HWND;
35 { TForm1 }
36
37 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
38 begin
39   //从观察链中删除本观察窗口
40   ChangeClipboardChain(Handle, NextClipHwnd);
41   //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
42   SendMessage(NextClipHwnd, WM_CHANGECBCHAIN, Handle, NextClipHwnd);
43 end;
44
45 procedure TForm1.FormCreate(Sender: TObject);
46 begin
47   //获得观察链中下一个窗口句柄
48   NextClipHwnd := SetClipBoardViewer(Handle);
49 end;
50
51 procedure TForm1.ListBox1Click(Sender: TObject);
52 begin
53   if ListBox1.Items.Count >= 0 then
54     if ListBox1.Items.Strings[ListBox1.ItemIndex]  =‘Bitmap‘  then
55       begin
56         Clipboard.Open;
57         Clipboard.Clear;
58         Clipboard.SetAsHandle(CF_BITMAP, Image1.Picture.Bitmap.Handle);
59         Clipboard.Close;
60       end
61     else
62     begin
63       Clipboard.Open;
64       ClipBoard.Clear;
65       Clipboard.AsText := ListBox1.Items.Strings[ListBox1.ItemIndex];
66       ClipBoard.Close;
67     end;
68 end;
69
70 procedure TForm1.WMDrawClipBoard(var AMessage: TMessage);
71 begin
72   //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
73   if NextClipHwnd <> 0 then
74     SendMessage(NextClipHwnd, AMessage.Msg, AMessage.WParam, AMessage.LParam);
75   //处理剪贴板中内容
76   if Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT) then
77   begin
78     //查询剪贴板中特定格式的数据内容
79     ListBox1.Items.Add(Clipboard.asText + ‘...‘);
80   end;
81   if Clipboard.HasFormat(CF_BITMAP) then
82   begin
83     ListBox1.Items.Add(‘Bitmap‘);
84     Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BITMAP, clipboard.GetAsHandle(CF_BITMAP), 0);
85   end;
86 end;
87
88 end.
时间: 2024-10-12 02:49:56

剪切板-监视剪贴板的相关文章

c#: 剪切板监视实现

CR TubeGet中有用户需要剪切板监视功能,记录代码以做备忘: using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace CRTubeGet { /// <summary> /// Provides notifications when the contents of the clipboard is updated. /// </summary> publ

复制到剪切板 兼容(IE/FF/Chrome/..)

最近做一个复制到剪切板的功能   在网上找了很多都不好用 最后发现在了  这篇文章很不错  简洁好用   贴出来  希望能帮到更多人 原文地址:http://www.lsproc.com/wiki/snippets:copytoclipboard 此代码修改自 discuz!, 简易实现 <script> var clipboardswfdata; var setcopy_gettext = function(){ clipboardswfdata = document.getElementB

vi中系统剪切板的设置

在vi中,如果编译时没有clipboard属性,将vi中的内容拷贝到系统剪切板有些麻烦.可以用如下的方法,查看vi 是否支持系统剪切板的功能: [email protected]:~$ vi --version | grep clipboard -clipboard +iconv +path_extra -toolbar +eval +mouse_dec +startuptime -xterm_clipboard 如果如上所示,不支持系统剪切板功能,可以如下在.vimrc中的设置,解决问题: "

Android剪切板(ClipboardManager) 复制文本

Android也有剪切板(ClipboardManager) 注意:导包的时候 API 11之前:  android.text.ClipboardManagerAPI 11之后:  android.content.ClipboardManager /** * 实现文本复制功能 * add by wangqianzhou * @param content */ public static void copy(String content, Context context) { // 得到剪贴板管理

android实现文本复制到剪切板功能(ClipboardManager)

Android也有剪切板(ClipboardManager),可以复制一些有用的文本到剪贴板,以便用户可以粘贴的地方使用,下面是使用方法 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.content.ClipboardManager 复制代码代码如下: /** * 实现文本复制功能 * add by wangqianzhou * @param content */  public static void cop

window.clipboardData实现剪切板操作总结

window.clipboardData的作用是在页面上将需要的东西复制到剪贴板上,提供了对于预定义的剪贴板格式的访问,以便在编辑操作中使用. 三个方法 (1)clearData(sDataFormat) 删除剪贴板中指定格式的数据.sDataFormat:"text","url" (2)getData(sDataFormat) 从剪贴板获取指定格式的数据. sDataFormat:"text","url" (3)setDat

Java中有关剪切板的操作

Java提供两种类型的剪贴板:系统的和本地的. 本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问. 系统剪贴板与同等操作系统直接关连,允许应用程序与运行在该操作系统下的其它程序之间进行信息交换. 在进一步深入之前,先看看与剪贴板相同的java类,这些类主要包含在java.awt.datatransfer包中,主要有以下几种: Clipboard类: 此类实现一种使用剪切/复制/粘贴操作传输数据的机制. ClipboardOwner接口:

使用clipboard.js复制页面内容到剪切板

最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的 答案后点击“复制答案”按钮将答案复制到系统剪切板.本以为这是一个小case,但是发现如果 要对各种主流浏览器都有良好的兼容性并不简单.原因在于出于安全原因,大多数现代浏览 器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用). 上网搜索了一下,现有的方案大致有两种: 一:使用原生javascript中window.clipboardData实现复制到剪贴板功能: 二:使用Zero Clipboard库: 在尝试了

Android系统剪切板

Android系统剪贴板 复制字符串到系统剪切板 /** * 复制文本到剪切板 * * @param text * @return */ @SuppressWarnings("deprecation") public boolean copyStringToSystem(String text) { try { if (android.os.Build.VERSION.SDK_INT > 11) { android.content.ClipboardManager c = (an