Récupérer un variable dans le presse papier

Publié:
25 Avr 2013 à 16:40
par clementbp
Bonjour
J'ai créé un agent en LS qui récupère les valeurs de chaque colonne d'une vue pour le document sélectionné et qui mets tout cela dans une variable.
Je voudrais ensuite copier la valeur de cette variable dans le presse papier pour ensuite pouvoir le copier ou je veux (ex : dans l'agenda)
Pensez vous que cela est faisable ?
Comment peut on copier une variable dans le presse papier?
Merci de votre aide
Re: Récupérer un variable dans le presse papier

Publié:
25 Avr 2013 à 17:06
par Michael DELIQUE
Salut
oui, via une api. je retrouve ça et je te le post
Re: Récupérer un variable dans le presse papier

Publié:
26 Avr 2013 à 13:20
par Michael DELIQUE
tout est dans les 2 fonctions
- Code : Tout sélectionner
Public Function ClipboardGetText_API() As String
%REM
'Variables API pour la fonction ClipboardSetText_API
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function OpenClipboard Lib "User32" (Byval hwnd As Long) As Long
Declare Function GetClipboardData Lib "User32" (Byval wFormat As Long) As Long
Declare Function GlobalLock Lib "kernel32" (Byval hMem As Long) As Long
Declare Function GlobalUnlock Lib "kernel32" (Byval hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32" (Byval lpString1 As String, Byval lpString2 As Long) As Long
%END REM
Dim nbHOpenClipboard As Long
Dim nbHGetClipboardData As Long
Dim nbGlobalLock As Long
Dim nbReturnValue As Long
On Error Goto CatchError
nbHOpenClipboard = OpenClipboard(0&)
If nbHOpenClipboard = 0 Then
Error 9999,"Cannot open Clipboard. Another app. may have it open"
Exit Function
End If
nbHGetClipboardData = GetClipboardData(1)
rem Obtain the handle to the global memory block that is referencing the text.
If Isnull(nbHGetClipboardData) Then
Error 9999,"Could not allocate memory"
Exit Function
End If
nbGlobalLock = GlobalLock(nbHGetClipboardData)
rem Lock Clipboard memory so we can reference the actual data string
If Not Isnull(nbGlobalLock) Then
ClipboardGetText_API = Space$(256)
nbReturnValue = lstrcpy(ClipboardGetText_API , nbGlobalLock)
nbReturnValue = GlobalUnlock(nbHGetClipboardData)
ClipboardGetText_API = Mid(ClipboardGetText_API , 1, Instr( 1,ClipboardGetText_API, Chr$(0), 0) - 1) ' Peel off the null terminating character.
Else
Error 9999,"Could not lock memory to copy string from."
Exit Function
End If
nbReturnValue = CloseClipboard()
Exit Function
CatchError:
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
If nbHOpenClipboard <> 0 Then
nbReturnValue = CloseClipboard()
End If
ClipboardGetText_API = ""
Exit Function
End Function
Public Sub ClipboardSetText_API(Source As String)
%REM
'Variables API pour la fonction ClipboardSetText_API
Declare Function GlobalAlloc Lib "kernel32" (Byval wFlags&, Byval dwBytes As Long) As Long
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function SetClipboardData Lib "User32" (Byval wFormat As Long, Byval hMem As Long) As Long
Declare Function EmptyClipboard Lib "User32" () As Long
Declare Function OpenClipboard Lib "User32" (Byval hwnd As Long) As Long
Declare Function GlobalUnlock Lib "kernel32" (Byval hMem As Long) As Long
Declare Function lstrcpy1 Lib "kernel32" Alias "lstrcpy" (Byval lpString1 As Long, Byval lpString2 As String) As Long
Declare Function GlobalLock Lib "kernel32" (Byval hMem As Long) As Long
%END REM
Dim nbGlobalAlloc As Long
Dim nbGlobalLock As Long
Dim nbReturnValue As Long
Dim nbOpenClipboard As Long
Dim nbCloseClipboard As Long
On Error Goto CatchError
nbOpenClipboard = 0
nbCloseClipboard=0
nbGlobalAlloc = GlobalAlloc(&H42, Len(Source) + 1)
rem Allocate movable global memory.
nbGlobalLock = GlobalLock(nbGlobalAlloc)
rem Lock the block to get a far pointer to this memory.
nbGlobalLock = lstrcpy1(nbGlobalLock,Source)
rem Copy the string to this global memory
If GlobalUnlock(nbGlobalAlloc) <> 0 Then
rem Unlock the memory.
Error 9999,"Could not unlock memory location. Copy aborted."
Exit Sub
End If
nbOpenClipboard = OpenClipboard(0&)
If nbOpenClipboard = 0 Then
rem Open the Clipboard to copy data to.
Error 9999,"Could not open the Clipboard. Copy aborted."
Exit Sub
End If
nbReturnValue = EmptyClipboard()
rem Clear the Clipboard. .
nbReturnValue = SetClipboardData(1, nbGlobalAlloc)
rem Copy the data to the Clipboard
nbCloseClipboard = CloseClipboard()
If nbCloseClipboard = 0 Then
Error 9999,"Could not close Clipboard."
End If
Exit Sub
CatchError:
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
If nbOpenClipboard<>0 Then
If nbCloseClipboard=0 Then
nbReturnValue = CloseClipboard()
End If
End If
Exit Sub
End Sub