Copy To Clipboard Via Script

Ever needed to send text to the clipboard via LotusScript? Does your database need to copy information to the clipboard to be used later in another area.. and you need to be able to move it via LotusScript? Here's how... Const GMEM_MOVEABLE = &H40 Const GMEM_ZEROINIT = &H2 Const CF_TEXT = &H01 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 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 Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long 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 hGlobalMemory = GlobalAlloc(Clng(GMEM_MOVEABLE Or GMEM_ZEROINIT), Clng(Len(text)+1)) If hGlobalMemory Then lpGlobalMemory = GlobalLock(hGlobalMemory) If lpGlobalMemory Then ret = lstrcpy(lpGlobalMemory, text) Call GlobalUnlock(hGlobalMemory) If OpenClipboard(hwnd) Then ret = EmptyClipboard() ret = SetClipboardData(CF_TEXT, hGlobalMemory) 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 Sub Click(Source As Button) Dim s As New NotesSession Dim ws as New NotesUIWorkspace Dim db As NotesDatabase Dim uiDoc as NotesUIDocument Dim plainText As String Set db = s.CurrentDatabase Set uiDoc = ws.CurrentDocument plainText = uiDoc.FieldGetText("testField") setclipboardtext(plainText) Msgbox "Function copied to clipboard.", 0+64, "Successful" End Sub

This was first published in November 2000

Dig deeper on Domino Resources - Part 3



Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:




  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...