Seite 1 von 1

Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 11:28
von STARGÅTE
Es geht um folgende Situation:

Ich habe ein Programm, welches zB. Texte und Bilder in die (globale) Zwischenablage kopieren kann oder von dort Inhalt in das Programm eingügen kann.
Zusätzlich möchte ich aber eine Programm interne Zwischenablage nutzen, welche zB auch private Styles von texten mit kopiert bzw. mit einfügt.

Das kopieren in beide Zwischenablagen stellt kein Problam da, allerdings suche ich gerade nach einer Methode, wie ich herausfinden kann, aus welcher Zwischenablage der Inhalt genommen werden soll, wenn ich etwas einfüge.
Wie kann ich ermitteln, ob der Text in der echten Zwischenablage von mir ist (ich also die interne Zwischenablage nutzten kann) oder von einem andere Programm, ich also diesen nutzen muss?

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 11:37
von ts-soft
Irgendwie fehlen hier die Infos :wink:
Wenn Du Dein internes Clipboardformat mit RegisterClipboardFormat_() registriert hast,
kannst Du mit GetClipboardFormatName_() prüfen, ob es in Deinem Format vorliegt,
bzw. mit IsClipboardFormatAvailable_() ob es in einem Standardformat vorliegt.

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 11:41
von STARGÅTE
Nein kein WinAPI.

Ich möchte SetClipboardText von PB nutzen, und intern eine eigene Verwaltung nutzen.

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 12:05
von ts-soft
Das waren die fehlenden Infos :wink:

Kannst Du nicht einfach an den Anfang des Clipboardtextes ein Magic (Identifier) setzen?

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 12:10
von CSHW89
Ich hatte mal ein ähnliches Problem. Ich hab es so gelöst, dass ich geprüft habe, ob der Clipboardtext mit dem reinen Text meiner Zwischenablage übereinstimmt. Wenn ja, dann nebe interne Zwischenablage, wenn nein, dann global. Ist natürlich keine optimale Lösung, aber sollte in den allermeisten Fällen ausreichen.

lg Kevin

PS @ts-soft: dieser Identifier wird dann aber in anderen Programmen eingefügt, die den Text aus der Zwischenablage auslesen

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 12:26
von ts-soft
CSHW89 hat geschrieben:PS @ts-soft: dieser Identifier wird dann aber in anderen Programmen eingefügt, die den Text aus der Zwischenablage auslesen
Ohne eine eigene Zwischenablage per API zu registrieren, ergibt das ganze ja auch keinen Sinn.
Die Zwischenablage sollte ja grundsätzlich nur durch Interaktion des Benutzers geändert werden dürfen,
jede Änderung, von der der Benutzer nichts weis, hat fatale folgen.

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 13:04
von CSHW89
Hm darum geht es doch nicht. Ich denke, was Stargate meinte war: der Benutzer kopiert in seinem Programm ein Text mit z.b. irgendwelchen Formatierungen. Wenn der Benutzer den Text nun wieder einfügt, sollten die Formatierungen enthalten sein, wenn er ihn aber in einem anderen Programm einfügt, soll zumindest der reine Text erscheinen. In deinem Fall wäre das aber nicht so, da zusätzlich der Identifier enthalten ist, von dem der Benutzer nicht weiß, woher der nun kommt.

lg Kevin

Re: Handhabung von interner und globaler Zwischenablage

Verfasst: 04.08.2013 13:40
von STARGÅTE
Äm jaaa.

Die Idee, selbst noch eine KlarText variante zu speicher und mit ClipboardText zu vergleichen, glingt gut.