Seite 1 von 1
STRG+C, STRG+V abfangen
Verfasst: Montag 16. Mai 2011, 09:20
von kribel
Hallo,
ich würde gerne die beiden Tastenkombinationen Strg+C und Strg+V abfangen können.
Bedingungen:
- Es ist eine Konsoleanwendung
- Die Anwendung soll minimiert laufen und die beiden Tastenkombinationen aus beliebigen Fenstern auslesen können. Am besten durch Events.
- Es ist ein Windows XP System
Kann mir bitte jemand dabei Helfen dies zu realisieren?
Viele Grüße
Konstantin
Re: STRG+C, STRG+V abfangen
Verfasst: Montag 16. Mai 2011, 11:18
von mutetella
Ich könnte mir vorstellen, dass Du mit dem 'signal'-Modul weiterkommen wirst...
Re: STRG+C, STRG+V abfangen
Verfasst: Montag 16. Mai 2011, 12:42
von kribel
mutetella hat geschrieben:Ich könnte mir vorstellen, dass Du mit dem 'signal'-Modul weiterkommen wirst...
Danke für den Tipp! Folgendes habe ich realisiert:
Code: Alles auswählen
import signal, os
def SignalHandler(signum, frame):
print "Sighandler CTRL+C, CTRL+V"
def main():
signal.signal(signal.SIGINT, SignalHandler)
while True:
try:
continue
except (SyntaxError) as e:
return e
Leider wird der
SignalHandler nur bei STRG+C aufgerufen. Bei STRG+V geschieht nichts. Das weitere Problem ist, dass das Fenster in dem das Skript aufgeführt wird aktiv sein muss.
Folgendes wäre also zu lösen:
- Wie lässt sich dieses Signal auf das ganze System ausweiten?
- Wie kann ich STRG+V abfangen?
Hat jemand eine Idee wie ich weiter verfahren kann?
Danke und viele Grüße
Konstantin
Re: STRG+C, STRG+V abfangen
Verfasst: Montag 16. Mai 2011, 15:32
von mutetella
Das Problem ist ja, dass Du Keyboardevents im System 'abfangen' musst, bevor sie an das aktive Programm weitergeleitet bzw. vom aktiven Programm interpretiert und dann verworfen werden.
Solange Dein Pythonprogramm das aktive Programm ist, funktioniert natürlich alles.
Du bräuchtest also eine Möglichkeit, Keyboardevents direkt in Windows abzufragen, bevor diese im gerade aktiven Programm dann aufgelöst werden.
Schau' Dir dazu mal
pyHook an.
Ich hab' das jetzt nur überflogen, aber müsste eigentlich sein, was Du suchst.
mutetella