X11 Warte auf und erhalte Zwischenablagen-Text

9

Ich muss die X11-Zwischenablage überwachen.

Momentan fordere ich die ClipBoard-Auswahl alle 5 Sekunden an, dann hasse ich den aus der Zwischenablage zurückgegebenen Text und vergleiche ihn mit der Hash-Berechnung aus der letzten Überprüfung. Wenn Hash nicht identisch sind, analysiere ich den Textinhalt und mache ein paar Sachen ...

Ich mag meine Methode nicht. Ich bin von Windows, und mit dem Winapi ist es der Kernel, der Ihr Programm benachrichtigt, wenn die Zwischenablage geändert wurde, und es ist effizienter!

Ich möchte nur wissen, ob es möglich ist, dass X11 Ihr Programm als winapi benachrichtigen kann, wenn sich die Zwischenablage geändert hat? Was ist der effizientere Weg, Änderungen an der Zwischenablage mit X11 zu überprüfen?

    
Josh Brian 06.01.2012, 09:00
quelle

3 Antworten

2
  1. Finde ein Fenster mit der Auswahl unter GetSelectionOwner (PRIMARY und CLIPBOARD)
  2. Holen Sie sich eine Kopie der Auswahl, indem Sie SelectionRequest senden, benachrichtigen Sie Ihre Anwendung
  3. Achten Sie auf SelectionClear event
  4. Update-Fenster mit Auswahl mit ID von SelectionClear event, gehe zu Schritt 2
Andrey Sidorov 07.02.2012 04:37
quelle
2

Verwenden Sie XFixesSelectSelectionInput() von der Erweiterung Xfixes und warten Sie auf XFixesSelectionNotify event.

Beispiel:

%Vor%

Dies funktioniert sowohl für bufname == "CLIPBOARD" als auch für bufname == "PRIMARY" selection.

Siehe auch PrintSelection() function in dieser Antwort .

    
x11user 09.07.2017 04:27
quelle
0

Hier ist eine gute Referenz: Ссылка

    
Eve Freeman 06.01.2012 16:25
quelle

Tags und Links