Option Explicit
Declare Function OpenClipboard Lib "user32" (ByVal Hwnd As Long) As Long
Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function GetWindow Lib "user32" (ByVal Hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Sub Utilisation()
Dim Controle As String
Controle = LirePressePapier
msgbox controle
End Sub
Function LirePressePapier() As String
Dim Tampon As String * 5000
Dim Valeurs As Long
Stop
OpenClipboard GetWindow(0, 0)
Valeurs = GetClipboardData(1)
If Valeurs <> 0 Then
CopyMemory ByVal Tampon, ByVal Valeurs, 5000
LirePressePapier = Left(Tampon, InStr(1, Tampon, Chr(0)) - 1)
Else
LirePressePapier = ""
End If
'Vidage du presse papier
EmptyClipboard
CloseClipboard
End Function