zoukankan      html  css  js  c++  java
  • delphi读写剪贴板的一些参考

    设置剪贴板数据:

    先用GlobalAlloc在堆中分配空间,返回的Hmem句柄将作为SetClipboardData的第二个参数。
    然后用GlobalLock把Hmem转为指针,再用delphi的strCopy把字符串写入。


    取剪贴板数据:
    获取剪贴板里的数据时,是不知道当前剪贴板里是否有数据的,也不知道剪贴板里的数据格式是什么。那么下面就来解决这两个问题,先使用函数IsClipboardFormatAvailable来获取剪贴板里的格式是否可以处理,接着使用函数OpenClipboard打开剪贴板,然后使用函数GetClipboardData来获取剪贴板数据

    源代码如下:
    -----------------------------------------------------------

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      *******
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s1:string;
      hmem:HGLOBAL;
      pstr:PChar;
    begin
      s1:='猪悟能在test剪贴板';
      hmem:=GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE,Length(s1)+4);
      pstr:=GlobalLock(hmem);
      StrCopy(pstr,PChar(s1));
      if OpenClipboard(0)then
      begin
         SetClipboardData(CF_TEXT,hmem);
         CloseClipboard;
         GlobalUnlock(hmem);
         GlobalFree(hmem);
         ShowMessage('字符串已经复制到剪贴板');
      end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
      hmem:THandle;
      pstr:PChar;
    begin
      //检查剪贴板类容类型
      if IsClipboardFormatAvailable(CF_TEXT) then
      begin
        OpenClipboard(0);
        hmem:=GetClipboardData(CF_TEXT);
        pstr:=GlobalLock(hmem);
        Memo1.Text:=pstr;
        GlobalUnlock(hmem);
        CloseClipboard;
      end;
    end;

    end.

    用#9查找tab符号:

    ipos := pos(#9,sTmp)

  • 相关阅读:
    JS document.execCommand实现复制功能(带你出坑)
    jquery动态添加删除一行数据示例
    SpringBoot SpEL表达式注入漏洞-分析与复现
    Fastjson 1.2.22-24 反序列化漏洞分析
    udf提权原理详解
    ZZCMS v8.2 前台Insert注入+任意文件删除
    安恒杯 3月线上个人赛WriteUp
    SQLI LABS Stacked Part(38-53) WriteUp
    【转】Ubuntu16.04安装docker
    安装部署k8s-版本-1.13
  • 原文地址:https://www.cnblogs.com/jiqiwoniu/p/4569516.html
Copyright © 2011-2022 走看看