Nur wenn man EmptyClipboard verwendet wird der andere Inhalt gelöscht. Das habe ich nur exemplarisch ins lesen eingebaut, natürlich sollte man das so machen dann:TomS hat geschrieben:DarkDragon, deinen Code würde ich nicht verwenden.
Ich denke mal er erzeugt einen neuen Typen neben den 3 bekannten Standardtypen, Text, Data/Image und File.
Allerdings können diese 3 Typen nicht parallel benutzt werden.
Das heißt, wenn du einen Bildschnipsel aus Paint ausgeschnitten/kopiert hast und danach einen Text kopierst, ist der Bildschnipsel weg.
Wenn jetzt konstant im Hintergrund irgendwelcher für den Anwender unrelevanter Quatsch meine Text Schnipsel überschreibt, würde mich das sehr ärgern.
Code: Alles auswählen
Define CrypticalFormat.i
Define Memory.i
Define Text.s
CrypticalFormat = RegisterClipboardFormat_("WAIODJIWOADJWIOIAJISDJ")
If CrypticalFormat <> 0
If OpenClipboard_(0)
; Read it if something is available
Memory = GetClipboardData_(CrypticalFormat)
If Memory <> 0
Debug PeekS(GlobalLock_(Memory))
GlobalUnlock_(Memory)
SetClipboardData_(CrypticalFormat, 0)
Else
; or write it if nothing is in the clipboard
Text = "Hello, World!"
Memory = GlobalAlloc_(#GMEM_MOVEABLE, StringByteLength(Text, #PB_Ascii))
If Memory <> 0
PokeS(GlobalLock_(Memory), Text, -1, #PB_Ascii)
GlobalUnlock_(Memory)
Debug "Writing data to clipboard."
SetClipboardData_(CrypticalFormat, Memory)
EndIf
EndIf
CloseClipboard_()
EndIf
EndIf
Aber ja, du hast recht wenn du es andersrum meinst:
Der Nutzer kopiert irgendwas zwischen dem 2x ausführen. Aber das könnte man auch handeln (Handshake und so..).
Ich schreib zu dem Posting lieber mal hinzu, dass es ein Scherz war, denn es gibt soviele Möglichkeiten, dass ich einfach alle geschrieben hab, die mir einfielen.