监视剪贴板的代码是在网上找的~
用的就是把程序加入剪贴板观察链的方法~
出错的地方在这个过程中~
就是剪贴板发生变化时响应的代码~procedure TForm1.WMDrawClipBoard(var AMessage: TMessage);
var
  buf: string;
  hMem: DWORD;
  txtPtr: PChar;
begin
  SendMessage(NextClipHwnd,AMessage.
  Msg,AMessage.WParam,AMessage.LParam);
  Try
    with TClipboard.Create do
    begin
      hMem := GetAsHandle(CF_TEXT);
      if hMem = 0 then
        exit;
      txtPtr := GlobalLock(hMem);
      buf := StrPas(txtPtr);
      GlobalUnlock(hMem);
      Free;
    end;
    {上面的代码也这样写过:
    if (Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT)) then
      buf := Clipboard.AsText;}
    //功能代码
  except
  end;
end;我用了两种方式来按照文本格式取得剪贴板中的信息~
无论用哪种方式~
只要剪贴板中的数据比较大(比如屏幕截图)~
就会出现Stack Overflow的错误~
然后程序自动关闭~
调试时停在了Try后面~
求教如何才能避免~