Page 1 sur 1

[R] Obtenir le focus sur une fenêtre hta

Posté : mar. 19 avr. 2011 13:52
par tomasomalley
Bonjour à tous et à toutes,
je m'échine depuis quelques heures pour obtenir le focus sur une fenêtre "hta" pour pouvoir faire de l'automatisation de renseignements. (exemple j'écris une donnée dans un champ texte, je valide...)
mais je n'arrive à rien, voici mon script en vrac avec mes différents essais.
merci à vous

Code : Tout sélectionner

; ControlFocus("mshta.exe", "", "Edit1")
; ControlSend("nom de ma fenetre hta", "", "Edit1", "This is a line of text in the notepad window")

;$a = ControlGetFocus("[nom de ma fenetre hta]")
;$active = WinGetHandle('[ACTIVE]')
;ControlSend ( "nom de ma fenetre hta", "", "Edit1", "taper ici les caractère à envoyer")
;ControlFocus ("nom de ma fenetre hta", "", "[CLASS:Internet Explorer; INSTANCE:1]")

#include <IE.au3>
$oIE = _IEAttach ("nom de ma fenetre hta", "embedded")

;#include <IE.au3>
;$oIE = _IE_Example ("nom de ma fenetre hta")
;$oSubmit = _IEGetObjByName ($oIE, "nom de ma fenetre hta")
;$hwnd = _IEPropertyGet($oIE, "hwnd")
;_IEAction ($oSubmit, "focus")
;ControlSend($hwnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")
 

Re: [..] Obtenir le focus sur une fenêtre hta

Posté : mar. 19 avr. 2011 16:35
par sylvanie
bonjour,
Dans tout ce que je vois, il n'y a pas de winactivate ... Vous l'avez essayé ?

Re: [..] Obtenir le focus sur une fenêtre hta

Posté : mar. 19 avr. 2011 16:42
par tomasomalley
grand merci sylvanie,

Code : Tout sélectionner

WinActivate("titre de ma fenêtre hta", "")
 
fonctionne je peux continuer grâce à toi...

Re: [..] Obtenir le focus sur une fenêtre hta

Posté : mar. 19 avr. 2011 20:36
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.

Re: [..] Obtenir le focus sur une fenêtre hta

Posté : mer. 20 avr. 2011 08:42
par tomasomalley
Bonjour, j'ai effectivement oublié de fermer ce topic mais ce n'est pas plus mal car j'ai maintenant un autre soucis !!
le fichier hta est lancé sur un Windows server 2008 R2 (ça peut aider à comprendre)
j'ai l'impression que les commandes que je tente de lui envoyer ne fonctionnent pas (je me trompe peut être je vous met le code)

Code : Tout sélectionner

WinActivate("titre de la fenetre hta", "") ; ça marche bien, le focus est bien mis sur ma fenêtre
Sleep (1000)
Send("This is some text.") ; il ne se passe rien ???
Sleep(1000)
Send("{TAB}")
Sleep(1000)
 
merci pour vos lumières
Tomas

Re: [..] Obtenir le focus sur une fenêtre hta

Posté : mer. 20 avr. 2011 10:43
par sylvanie
Est ce que votre script est lancé par le même utilisateur que celui de l'applicatif "hta" ?
Je pose cette question, car le hasard fait qu'hier personnellement j'étais confronté à ceci.
Plus précisément l'application lancée l'était par le compte admin de ma machine, et mon script exécuté par mon profil habituel (humble user). Et donc les send ne passaient pas, il a fallut lancer le script en tant qu'admin

Re: [..] Obtenir le focus sur une fenêtre hta [R]

Posté : mer. 20 avr. 2011 11:34
par tomasomalley
super well done !!!
de nouveau je te remerci grandement,
effectivement je doit lancer mon *.hta en tant qu'administrateur mais je ne le faisait pas pour mon script, je viens de le faire et bingo ça fonctionne !! bon je vais de nouveau pouvoir avancer....
merci pour ta rapidité.
Tomas