ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Unicode en _cliptext   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

dim. 22 novembre 2020, 20h24
123456
Pakistan Pakistan

atoutfox.public.association

Unicode en _cliptext

Monsieur, c'est mon premier message sur votre forum, j'espère que tous les membres iront bien.
Ma question concerne le texte Unicode.

Supposons que j'ai ce texte unicode

tcUnicodeText=[اسلام علیکم]



Je veux copier cette chaîne dans _cliptext

Pour cela, j'ai trouvé ce lien utile
https://www.berezniker.com/content/pages/visual-foxpro/copy-unicode-text-clipboard


J'ai utilisé ma chaîne avec ce code comme suit

DO CopyUnicodeText2Clipboard WITH tcUnicodeText

 && Copy Unicode text into Clipboard
 FUNCTION CopyUnicodeText2Clipboard(tcUnicodeText)
 LOCAL lnDataLen, lcDropFiles, llOk, i, lhMem, lnPtr, lcUnicodeText

 #DEFINE CF_UNICODETEXT      13
 && Global Memory Variables with Compile Time Constants
 #DEFINE GMEM_MOVABLE     0x0002
 #DEFINE GMEM_ZEROINIT    0x0040
 #DEFINE GMEM_SHARE        0x2000

 && Load required Windows API functions
 =LoadApiDlls()

 llOk = .T.
 lcUnicodeText = tcUnicodeText + CHR(0)+CHR(0)
 lnDataLen = LEN(lcUnicodeText)
 && Copy Unicode text into the allocated memory
 lhMem = GlobalAlloc(GMEM_MOVABLE+GMEM_ZEROINIT+GMEM_SHARE, lnDataLen)
 lnPtr = GlobalLock(lhMem)
 =CopyFromStr(lnPtr, @lcUnicodeText, lnDataLen)
 =GlobalUnlock(lhMem)
 && Open clipboard and store Unicode text into it
 llOk = (OpenClipboard(0) <> 0)
 IF llOk
     =EmptyClipboard()
     llOk = (SetClipboardData(CF_UNICODETEXT, lhMem) <> 0)
     && If call to SetClipboardData() is successful, the system will take ownership of the memory
     && otherwise we have to free it
     IF NOT llOk
         =GlobalFree(lhMem)
     ENDIF
     && Close clipboard
     =CloseClipboard()
 ENDIF
 RETURN llOk

 FUNCTION LoadApiDlls
 && Clipboard Functions
 DECLARE LONG OpenClipboard IN WIN32API LONG HWND
 DECLARE LONG CloseClipboard IN WIN32API
 DECLARE LONG EmptyClipboard IN WIN32API
 DECLARE LONG SetClipboardData IN WIN32API LONG uFormat, LONG hMem
 && Memory Management Functions
 DECLARE LONG GlobalAlloc IN WIN32API LONG wFlags, LONG dwBytes
 DECLARE LONG GlobalFree IN WIN32API LONG HMEM
 DECLARE LONG GlobalLock IN WIN32API LONG HMEM
 DECLARE LONG GlobalUnlock IN WIN32API LONG HMEM
 DECLARE LONG RtlMoveMemory IN WIN32API As CopyFromStr LONG lpDest, String @lpSrc, LONG iLen
 RETURN



Les codes fonctionnent avec succès, mais lorsque je colle les données du presse-papiers dans MS.Word, ces données apparaissent comme ceci
폇쟡 ⃣ 飭 ⃣਍ 臂 頠 폭 ⃿Ÿ＀ 炙? 뷑 ᄐ 芖 g﹌ 䛦 覒 蠀

au lieu de اسلام علیکم


Comment est-il possible de copier des données Unicode dans _clipboard.

S'il vous plaît


Permalink : http://www.atoutfox.org/nntp.asp?ID=0000019745
19 660 messages dans le forum • Liste complète des messages

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2020.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3