Windows version:
' Clipboard Text - Copy/Paste functions Strict Extern "Win32" Function OpenClipboard%(hwnd%) Function CloseClipboard%() Function EmptyClipboard%() Function IsClipboardFormatAvailable%(format%) Function GetClipboardData:Byte Ptr(Format:Int) Function SetClipboardData(format%, hMem:Byte Ptr) Function GlobalAlloc(Flags:Int, Bytes:Int) Function GlobalFree(Mem:Int) Function GlobalLock:Byte Ptr(Mem:Int) Function GlobalUnlock(Mem:Int) End Extern ' ----------------------------------------------- Function TextFromClipboard:String() Const CF_TEXT%=$1 If Not OpenClipboard(0) Return "" Local TextBuf:Byte Ptr = GetClipboardData(CF_TEXT) CloseClipboard() Return String.FromCString(TextBuf) End Function Function TextToClipboard(txt:String) Const CF_TEXT%=$1 Const GMEM_MOVEABLE%=$2 Const GMEM_DDESHARE%=$2000 If txt$="" Return Local TextBuf:Byte Ptr = Txt.ToCString() Local Memblock:Int = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE, txt.Length+1) Local DataBuf:Byte Ptr = GlobalLock(Memblock) MemCopy DataBuf, TextBuf, Txt.length If OpenClipboard(0) EmptyClipboard SetClipboardData CF_TEXT, DataBuf CloseClipboard EndIf GlobalUnlock Memblock GlobalFree Memblock End Function ' ******************************************** ' test Print "Clipboard Test." Print "===============" Print "Enter a message for the clipboard." Print "Alternatively, leave BLANK to read clipboard." Local a:String a=Input$(">") If a="" a=TextFromClipboard() Print a Else TextToClipboard a Print "Text sent to clipboard. Open NotePad and paste!" EndIf Print Chr$(13)+"---------------------------------" a=Input$("Press RETURN to end ...") End