OVH Cloud OVH Cloud

clavier virtuel paramétrable

2 réponses
Avatar
oliv
Je tente de construire un clavier virtuel paramétrable ( c'est à dire pas ceux qu'on peut trouver actuellement) où chaque touche correspondra à un mot d'une liste (contenue dans un fichier texte)
J'ai déjà réalisé le gui avec les boutons contenant chaque mot et qui affichent ce mot dans un widget Text (Tkinter
Mon problème est maintenant de faire agir ces boutons, non pas sur un widget de l'appli, mais sur n'importe quelle application ouverte : traitement de texte, courrier electronique
On m'a déjà proposé comme solution

win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText("mot")
win32clipboard.CloseClipboard()

pour copier le mot dans le presse papier (ça marche

Il faut ensuite donner le focus à une autre application et que le clavier reste devant
comment faire ceci

On m'a proposé d'utiliser FindWindowEx mais je n'ai pas réuss

puis il faudra y coller le contenu du presse papier : comment faire égalemen

--
oliv

-----------------------------------------------------------------------
Voir theme: http://www.frbox.net/viewtopic-531541.htm

Envoyé de http://www.frbox.ne

2 réponses

Avatar
Jerome
oliv wrote:
Je tente de construire un clavier virtuel paramétrable ( c'est à dire pas ceux qu'on peut trouver actuellement) où chaque touche correspondra à un mot d'une liste (contenue dans un fichier texte).
J'ai déjà réalisé le gui avec les boutons contenant chaque mot et qui affichent ce mot dans un widget Text (Tkinter)
Mon problème est maintenant de faire agir ces boutons, non pas sur un widget de l'appli, mais sur n'importe quelle application ouverte : traitement de texte, courrier electronique.
On m'a déjà proposé comme solution :

win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText("mot")
win32clipboard.CloseClipboard()

pour copier le mot dans le presse papier (ça marche)

Il faut ensuite donner le focus à une autre application et que le clavier reste devant :
comment faire ceci ?

On m'a proposé d'utiliser FindWindowEx mais je n'ai pas réussi

puis il faudra y coller le contenu du presse papier : comment faire également




J'imagine que tu ne cherches à faire une application qui ne marche que
sous windows...

Je ne connais pas le binding de l'api win32 en python mais j'imagine que
tu dois effectivement pouvoir utiliser findwindows pour récupérer les
handles sur les applis que tu veux :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/findwindow.asp

et envoyer un message de collage sur ce handle avec sendmessage ou
postmessage.

En pseudo code :

hwnd = FindWindow("traitement de texte")
PostMessage(hwnd,WM_PASTE)
SetForegroundWindow(self.hwnd)

ou simuler l'appui d'une touche avec un événement clavier (CTRL+V) pour
coller si WM_PASTE ne marche pas.

Faudrait tester mais je n'ai plus windows :)

Avatar
Méta-MCI
Bonjour !

3ème envoi (vendredi et dimanche ne sont pas passés)

-----------------------------------------------------------

Bonjour !

2ème envoi (car les problèmes usenet continuent...)

-----------------------------------------------------------

Bonsoir !


Quelques pistes, qui pourraient t'intéresser :

- Module sendkeys :
http://www.rutherfurd.net/python/sendkeys/

- Piloter WSH par COM :
http://aspn.activestate.com/ASPN/Mail/Message/activepython/544878

- Utiliser AutoIt via COM, solution que j'ai retenue, et qui permet, en plus
des sendkeys, de piloter la souris, les fenêtres d'autres applications, la
barre des tâches, etc.


@-salutations

Michel Claveau