Simuler Ctrl+c depuis Python vers le clavier .
papanou1965
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
papanou1965 Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
papanou1965 Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Bonjour, Voilà le soucis à six sous.
J'arrive sans problème à détecter une frappe de Ctrl+c au clavier dans Python.
Mais je n'arrive pas à faire le contraire .
C'est à dire de remplacer l'utilisateur par Python et de lui faire faire un Ctrl+c.
Cela fait 3 jours que j'arpente le net et je ne m'en sort pas .
Si vous aviez une petite indication pour m'aider ce serais sympa.
J'arrive sans problème à détecter une frappe de Ctrl+c au clavier dans Python.
Mais je n'arrive pas à faire le contraire .
C'est à dire de remplacer l'utilisateur par Python et de lui faire faire un Ctrl+c.
Cela fait 3 jours que j'arpente le net et je ne m'en sort pas .
Si vous aviez une petite indication pour m'aider ce serais sympa.
A voir également:
- Python ctrl v
- Citizen code python avis - Accueil - Outils
- Hyper-v download - Télécharger - Divers Utilitaires
- Ctrl maj n - Forum Windows 10
- Ctrl c ctrl v ne fonctionne plus ✓ - Forum Windows 10
- Ctrl + V ne fonctionne pas. - Forum Windows
4 réponses
Il faut envoyer un signal, il existe un module en python qui se nomme justement signal et je pense que celui qui t'intéresse est SIGINT
tu peut apparemment le faire avec ctypes:
https://stackoverflow.com/questions/13564851/how-to-generate-keyboard-events-in-python
Google it :p
import ctypes import time SendInput = ctypes.windll.user32.SendInput # C struct redefinitions PUL = ctypes.POINTER(ctypes.c_ulong) class KeyBdInput(ctypes.Structure): _fields_ = [("wVk", ctypes.c_ushort), ("wScan", ctypes.c_ushort), ("dwFlags", ctypes.c_ulong), ("time", ctypes.c_ulong), ("dwExtraInfo", PUL)] class HardwareInput(ctypes.Structure): _fields_ = [("uMsg", ctypes.c_ulong), ("wParamL", ctypes.c_short), ("wParamH", ctypes.c_ushort)] class MouseInput(ctypes.Structure): _fields_ = [("dx", ctypes.c_long), ("dy", ctypes.c_long), ("mouseData", ctypes.c_ulong), ("dwFlags", ctypes.c_ulong), ("time",ctypes.c_ulong), ("dwExtraInfo", PUL)] class Input_I(ctypes.Union): _fields_ = [("ki", KeyBdInput), ("mi", MouseInput), ("hi", HardwareInput)] class Input(ctypes.Structure): _fields_ = [("type", ctypes.c_ulong), ("ii", Input_I)] # Actuals Functions def PressKey(hexKeyCode): extra = ctypes.c_ulong(0) ii_ = Input_I() ii_.ki = KeyBdInput( hexKeyCode, 0x48, 0, 0, ctypes.pointer(extra) ) x = Input( ctypes.c_ulong(1), ii_ ) SendInput(1, ctypes.pointer(x), ctypes.sizeof(x)) def ReleaseKey(hexKeyCode): extra = ctypes.c_ulong(0) ii_ = Input_I() ii_.ki = KeyBdInput( hexKeyCode, 0x48, 0x0002, 0, ctypes.pointer(extra) ) x = Input( ctypes.c_ulong(1), ii_ ) SendInput(1, ctypes.pointer(x), ctypes.sizeof(x)) def run(): PressKey(0x11) #Ctrl PressKey(0x43) #C ReleaseKey(0x43) #~C ReleaseKey(0x11) #~Ctrl if __name__ =="__main__": run()
https://stackoverflow.com/questions/13564851/how-to-generate-keyboard-events-in-python
Google it :p
Merci à vous deux .
Voilà ce qui se passe dans les deux cas.
Ctrl+c ferme la console.
Et ce n'est pas ce que j'attendais , même si python fait ce qu'il doit faire .
Je voulais faire un simple copier dans le presse papier d'une zone sélectionnée.
Et aller lire le contenu pour l'utiliser dans une variable.
Le script de Suguel fonctionne bien , j'espère que tu n'a pas coder tout sa.
Moi j'ai trouvé ceci qui fait exactement pareil
Le soucis c'est qu'il n'y passera jamais .
Merci pour votre aide et désolé de vous avoir fait chercher avec moi pour des prunes.
Bonne journée @ tous.
Voilà ce qui se passe dans les deux cas.
Ctrl+c ferme la console.
Et ce n'est pas ce que j'attendais , même si python fait ce qu'il doit faire .
Je voulais faire un simple copier dans le presse papier d'une zone sélectionnée.
Et aller lire le contenu pour l'utiliser dans une variable.
Le script de Suguel fonctionne bien , j'espère que tu n'a pas coder tout sa.
Moi j'ai trouvé ceci qui fait exactement pareil
import os import signal os.kill(signal.CTRL_C_EVENT, 1) r=input('je devrais passer ici! et attendre.')
Le soucis c'est qu'il n'y passera jamais .
Merci pour votre aide et désolé de vous avoir fait chercher avec moi pour des prunes.
Bonne journée @ tous.