我想让string类型变量s ,获取剪切板中的文字内容,除了  
  clipboard:=tclipboard.create;
  s:=clipboard.astext;
还有没有别的办法。
因为在某种情况下他老是提示 clipboard.open 错误!我无奈了

解决方案 »

  1.   

    procedure TForm2.Button1Click(Sender: TObject);
    var c:Tclipboard;
    begin
       edit1.CopyToClipboard;
       edit2.PasteFromClipboard;
    end;
      

  2.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    var jieguo:string;  c:tclipboard;
    begin
        sleep(10000);
        c:=tclipboard.Create;    c.AsText:='11';
        //ctrlv
        keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
        keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), 0, 0);
        keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), KEYEVENTF_KEYUP, 0);
        keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);
        //ctrla
        keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
        keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0);
        keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), KEYEVENTF_KEYUP, 0);
        keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)  ;
       //ctrlc
         keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
         keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);
         keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);
         keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);     jieguo:=c.AsText;
    end;为什么出错?