zoukankan      html  css  js  c++  java
  • 解决Delphi的剪贴板的AsText方法乱码的问题

    1. 使用Delphi的剪贴板的AsText方法会导致非英语出现乱码,怎么解决?改用Unicode就可以了。
    2. procedure SetClipboardText(AStr: string);   
    3. var    // SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1);   
    4.   Data: THandle;   
    5.   DataPtr: Pointer;   
    6.   Size: Integer;   
    7.   WStr: PWideChar;   
    8. begin   
    9.   Size := Length(AStr) * 4;   
    10.   WStr := AllocMem(Size);   
    11.   try  
    12.     // convert to Unicode   
    13.     StringToWideChar(AStr, WStr, Size);   
    14.     OpenClipboard(0);   
    15.     EmptyClipboard;   
    16.     Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);   
    17.     try  
    18.       DataPtr := GlobalLock(Data);   
    19.       try  
    20.         Move(WStr^, DataPtr^, Size);   
    21.         SetClipboardData(CF_UNICODETEXT, Data);   
    22.       finally  
    23.         GlobalUnlock(Data);   
    24.       end;   
    25.     except   
    26.       GlobalFree(Data);   
    27.       raise;   
    28.     end;   
    29.   finally  
    30.     CloseClipboard;   
    31.     FreeMem(WStr);   
    32.   end;   
    33. end; 
  • 相关阅读:
    截取
    逃避系统警察
    刷题
    排队
    侦察兵
    朋友
    楼层
    解码
    倒水
    魔法阵
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1712091.html
Copyright © 2011-2022 走看看