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?
Handhabung von interner und globaler Zwischenablage
Handhabung von interner und globaler Zwischenablage
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Handhabung von interner und globaler Zwischenablage
Irgendwie fehlen hier die Infos
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.
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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Handhabung von interner und globaler Zwischenablage
Nein kein WinAPI.
Ich möchte SetClipboardText von PB nutzen, und intern eine eigene Verwaltung nutzen.
Ich möchte SetClipboardText von PB nutzen, und intern eine eigene Verwaltung nutzen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Handhabung von interner und globaler Zwischenablage
Das waren die fehlenden Infos
Kannst Du nicht einfach an den Anfang des Clipboardtextes ein Magic (Identifier) setzen?
Kannst Du nicht einfach an den Anfang des Clipboardtextes ein Magic (Identifier) setzen?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Handhabung von interner und globaler Zwischenablage
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
lg Kevin
PS @ts-soft: dieser Identifier wird dann aber in anderen Programmen eingefügt, die den Text aus der Zwischenablage auslesen

http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Handhabung von interner und globaler Zwischenablage
Ohne eine eigene Zwischenablage per API zu registrieren, ergibt das ganze ja auch keinen Sinn.CSHW89 hat geschrieben:PS @ts-soft: dieser Identifier wird dann aber in anderen Programmen eingefügt, die den Text aus der Zwischenablage auslesen
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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Handhabung von interner und globaler Zwischenablage
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
lg Kevin

http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: Handhabung von interner und globaler Zwischenablage
Äm jaaa.
Die Idee, selbst noch eine KlarText variante zu speicher und mit ClipboardText zu vergleichen, glingt gut.
Die Idee, selbst noch eine KlarText variante zu speicher und mit ClipboardText zu vergleichen, glingt gut.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr