root.mainloop(
mais lorsque je clique sur le bouton ça ne donne pas le focus à la fenetre où je veux écrire· Par contre si je clique dans la fenetre l'appli écrit dedans
d'autre par
je n'ai pas trouvé comment écrire dans la fenetre qui a le focus car toutes les commandes de AutoItX3 necessitent de nommer la fenetre par son titre· Or ce que je veux c'est que l'utilisateur donne le focus à la fenetre et que ensuite lorsqu'on clique sur le bouton l'appli écrive dans cette fenetre donnée par l'utilisateu
la fonction titre=Auto.WinGetTitle("") me donne à chaque fois tk comme valeur et le focus est donc fixé sur la fenetre de l'application et pas sur celle où l'utilisateur veux écrire !!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
BrunoL
j'ai essayé ceci :
[...]
je n'ai pas trouvé comment écrire dans la fenetre qui a le focus car toutes les commandes de AutoItX3 necessitent de nommer la fenetre par son titre· Or ce que je veux c'est que l'utilisateur donne le focus à la fenetre et que ensuite lorsqu'on clique sur le bouton l'appli écrive dans cette fenetre donnée par l'utilisateur la fonction titre=Auto.WinGetTitle("") me donne à chaque fois tk comme valeur et le focus est donc fixé sur la fenetre de l'application et pas sur celle où l'utilisateur veux écrire !!!
Cela répond il au besoin ?
_______________________________________________________ # -*- coding: cp1252 -*- from Tkinter import * import time from win32com.client import Dispatch Doc = Dispatch("AutoItX3.Control") titreFenetre = "Sans titre - Bloc-notes" Doc.Run("Notepad.exe") Doc.WinActivate("Sans titre - Bloc-notes")
je n'ai pas trouvé comment écrire dans la fenetre qui a le focus car toutes les commandes de AutoItX3 necessitent de nommer la fenetre par son titre· Or ce que je veux c'est que l'utilisateur donne le focus à la fenetre et que ensuite lorsqu'on clique sur le bouton l'appli écrive dans cette fenetre donnée par l'utilisateur
la fonction titre=Auto.WinGetTitle("") me donne à chaque fois tk comme valeur et le focus est donc fixé sur la fenetre de l'application et pas sur celle où l'utilisateur veux écrire !!!
Cela répond il au besoin ?
_______________________________________________________
# -*- coding: cp1252 -*-
from Tkinter import *
import time
from win32com.client import Dispatch
Doc = Dispatch("AutoItX3.Control")
titreFenetre = "Sans titre - Bloc-notes"
Doc.Run("Notepad.exe")
Doc.WinActivate("Sans titre - Bloc-notes")
je n'ai pas trouvé comment écrire dans la fenetre qui a le focus car toutes les commandes de AutoItX3 necessitent de nommer la fenetre par son titre· Or ce que je veux c'est que l'utilisateur donne le focus à la fenetre et que ensuite lorsqu'on clique sur le bouton l'appli écrive dans cette fenetre donnée par l'utilisateur la fonction titre=Auto.WinGetTitle("") me donne à chaque fois tk comme valeur et le focus est donc fixé sur la fenetre de l'application et pas sur celle où l'utilisateur veux écrire !!!
Cela répond il au besoin ?
_______________________________________________________ # -*- coding: cp1252 -*- from Tkinter import * import time from win32com.client import Dispatch Doc = Dispatch("AutoItX3.Control") titreFenetre = "Sans titre - Bloc-notes" Doc.Run("Notepad.exe") Doc.WinActivate("Sans titre - Bloc-notes")
Je reviens après plusieurs jours de déboires avec les newsgroups usenet (erreur 10061, etc.)
Voici le code de BrunoL, légèrement retouché (et juste un poil commenté) :
# -*- coding: cp1252 -*- from Tkinter import * import time import win32com.client Doc = win32com.client.Dispatch("AutoItX3.Control")
titreFenetre = "Sans titre" #seul le début du titre est nécessaire Doc.Run("Notepad.exe") Doc.WinWait(titreFenetre,"",6) #on attend (6 s maxi) que la fenêtre soit ouverte ; inutile de mettre le focus
def ecrire(): Doc.ControlFocus(titreFenetre,"",15) # on peut adresser directement un contrôle d'une fenêtre, par son numéro ; les numéros peuvent être trouvés avec Au3info # cel peut être très utile, s'il y a plusieurs champs (contrôles) dans la fenêtre, pour choisir le bon champ Doc.Send("12345") Doc.Send("{+}") Doc.Send("54321rABCDéèç@ëïrrrZZZZZ")
def fermer(): Doc.WinKill(titreFenetre , '') #Doc.Send("!n") #inutile avec WinKill
Je reviens après plusieurs jours de déboires avec les newsgroups usenet
(erreur 10061, etc.)
Voici le code de BrunoL, légèrement retouché (et juste un poil commenté) :
# -*- coding: cp1252 -*-
from Tkinter import *
import time
import win32com.client
Doc = win32com.client.Dispatch("AutoItX3.Control")
titreFenetre = "Sans titre" #seul le début du titre est nécessaire
Doc.Run("Notepad.exe")
Doc.WinWait(titreFenetre,"",6) #on attend (6 s maxi) que la fenêtre soit
ouverte ; inutile de mettre le focus
def ecrire():
Doc.ControlFocus(titreFenetre,"",15)
# on peut adresser directement un contrôle d'une fenêtre, par son
numéro ; les numéros peuvent être trouvés avec Au3info
# cel peut être très utile, s'il y a plusieurs champs (contrôles)
dans la fenêtre, pour choisir le bon champ
Doc.Send("12345")
Doc.Send("{+}")
Doc.Send("54321rABCDéèç@ëïrrrZZZZZ")
def fermer():
Doc.WinKill(titreFenetre , '')
#Doc.Send("!n") #inutile avec WinKill
Je reviens après plusieurs jours de déboires avec les newsgroups usenet (erreur 10061, etc.)
Voici le code de BrunoL, légèrement retouché (et juste un poil commenté) :
# -*- coding: cp1252 -*- from Tkinter import * import time import win32com.client Doc = win32com.client.Dispatch("AutoItX3.Control")
titreFenetre = "Sans titre" #seul le début du titre est nécessaire Doc.Run("Notepad.exe") Doc.WinWait(titreFenetre,"",6) #on attend (6 s maxi) que la fenêtre soit ouverte ; inutile de mettre le focus
def ecrire(): Doc.ControlFocus(titreFenetre,"",15) # on peut adresser directement un contrôle d'une fenêtre, par son numéro ; les numéros peuvent être trouvés avec Au3info # cel peut être très utile, s'il y a plusieurs champs (contrôles) dans la fenêtre, pour choisir le bon champ Doc.Send("12345") Doc.Send("{+}") Doc.Send("54321rABCDéèç@ëïrrrZZZZZ")
def fermer(): Doc.WinKill(titreFenetre , '') #Doc.Send("!n") #inutile avec WinKill