

![]() |
||||||||||||
![]()
![]() ![]()
![]() ' Windows Clipboard functions Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (Byval hwnd As Long) As Long Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long Declare Function GetClipboardData Lib "user32" Alias "GetClipboardData" (Byval wFormat As Long) As Long Declare Function SetClipboardData Lib "user32" Alias "SetClipboardData" (Byval wFormat As Long, Byval hMem As Long) As Long Declare Function IsClipboardFormatAvailable Lib "user32" Alias "IsClipboardFormatAvailable" (Byval wFormat As Long) As Long ' Windows memory functions Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (Byval wFlags As Long, Byval dwBytes As Long) As Long Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (Byval hMem As Long) As Long Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (Byval hMem As Long) As Long Declare Function GlobalSize Lib "kernel32" Alias "GlobalSize" (Byval hMem As Long) As Long Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (Byval lpString1 As Long, Byval lpString2 As String) As Long ' Notes functions Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long ' Windows constants Const GMEM_MOVEABLE = &H40 Const GMEM_ZEROINIT = &H2 Const CF_TEXT = &H01 Sub SetClipboardText(text As String) Dim hwnd As Long Dim hGlobalMemory As Long Dim lpGlobalMemory As Long Dim ret As Long On Error Goto error_handler ' Get a handle to current window hwnd = NEMGetCurrentSubProgramWindow() If hwnd Then ' Allocate memory Print "GlobalAlloc" hGlobalMemory = GlobalAlloc(Clng(GMEM_MOVEABLE Or GMEM_ZEROINIT), Clng(Len(text)+1)) If hGlobalMemory Then Print "GlobalLock" lpGlobalMemory = GlobalLock(hGlobalMemory) If lpGlobalMemory Then ' Copy text to global memory Print "lstrcpy" ret = lstrcpy(lpGlobalMemory, text) Print "Unlock" Call GlobalUnlock(hGlobalMemory) ' Set clipboard contents If OpenClipboard(hwnd) Then ret = EmptyClipboard() Print "SetClipboard" ret = SetClipboardData(CF_TEXT, hGlobalMemory) Print "CloseClipboard" ret = CloseClipboard() End If Else Msgbox "Can't allocated global memory pointer.", 32, "Error" End If Else Msgbox "Can't allocated global memory handle.", 32, "Error" End If Else Msgbox "Can't get window handle.", 32, "Error" End If Exit Sub error_handler: Print "Error: " + Error$(Err) Resume Next End Sub ******** Agent Option Public Use "Clipboard" Sub Initialize Print "Start agent" SetClipboardText("Let's hope this works.") End Sub ![]() |