Bonjour, j'ai deja poster une discussion sur le clavier visuel pour appeler celui natif a l'OS installé.
Maintenant j'aimerais récupéré le MainWindowHandle de la fenêtre du clavier visuel pour pouvoir faire ensuite un MoveWindow() ou autre.
Vous allez me dire, " Ta juste a prendre ton objet Process et faire :"
Mais maleuresement ceci est trop facile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // process osk intptr M_handle = osk.MainWindowHandle();et sa ne fonctionne pas, j'ai donc utilisé :
Ceci fonctionne avec visual et sur une autre de mes machines MAIS PAS sur un windows seven qui n'a pourtant aucune particularité ! ( 32 bits )
Code : Sélectionner tout - Visualiser dans une fenêtre à part IntPtr winResize = FindWindow(null, "Clavier visuel");
Sur cette machine, le waitInputforIdle ne marche pas non plus, j'ai donc opté pour unqui lui fonctionne sur mon 64 bits.Thread.sleep(500);
En gros cela donne :
A oui aussi, j'ai essayer GetProcessByName("osk")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (osk.Responding) { Thread.Sleep(500); IntPtr winResize = FindWindow(null, "Clavier visuel"); MoveWindow(winResize,...); }
Je retrouve bien mon "osk.exe" mais quand j'espionne le MainWindowHandle, il est égale à 0 donc impossible de se servir de sa a part pour kill l'osk.
Une idée, un conseil, une solution alternative ?
Merci
KevDeta
Partager