Handhabung von interner und globaler Zwischenablage

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Handhabung von interner und globaler Zwischenablage

Beitrag 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?
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
Benutzeravatar
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

Beitrag 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.
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.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Handhabung von interner und globaler Zwischenablage

Beitrag von STARGÅTE »

Nein kein WinAPI.

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
Benutzeravatar
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

Beitrag von ts-soft »

Das waren die fehlenden Infos :wink:

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.
Bild
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Handhabung von interner und globaler Zwischenablage

Beitrag 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
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
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

Beitrag 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.
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.
Bild
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Handhabung von interner und globaler Zwischenablage

Beitrag 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
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Handhabung von interner und globaler Zwischenablage

Beitrag von STARGÅTE »

Äm jaaa.

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
Antworten