[..] Remplir une fenetre windows

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

[..] Remplir une fenetre windows

#1

Message par danieller »

Bonjour,

Je cherche à remplir de façon autonome les champs d'une fenêtre windows, le but étant de faire une mise a jour automatique d'une base de données.
Bref, ma fenêtre de sécurité windows s'affiche en même temps que l'ouverture de ma page, mais je n'arrive pas a renseigner les champs. J'ai essayé avec la fonction Send(), puis la fonction ControlSend() mais je n'y arrive pas.

J'ai 2 champs a remplir, le title de la fenetre c'est : sécurité de windows
et la classe : 34570
avec Edit 1 et Edit 2

Si quelqu'un peut m'aider / m'expliquer comment faire cela sera sympa.

Merci.
A+
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#2

Message par Y01 »

Bonjour,

Une petite capture d'écran est elle faisable ?

Et que se passe t-il lors de la simulation de touche clavier ?
Y01
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#3

Message par danieller »

Initialement je voulais faire un truc super simple du genre :

Code : Tout sélectionner


#include <IE.au3>
Local $oIE = _IECreate("https://124444.admincjh.gpuus.net")
Send("login")
Send("{TAB}")
Send("mdp")

 
Sauf qu'au premier essai (je n'avais pas les lignes Send("{TAB}") et Send("mdp") ) cela à bien affiché le login, mais après plus moyen de renouveler l'expérience... je ne comprends pas trop.
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#4

Message par danieller »

En fait je me rends compte que c'est lorsque je quitte la fenêtre en cliquant sur "Annuler" que l’écriture s’exécute...
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#5

Message par Y01 »

Je ne comprends pas bien la demande.

C'est une fenêtre de sécurité Windows qui s'ouvre ou une identification sur un site web ?
Y01
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#6

Message par danieller »

Regardes l'imprimecran normalement joint.
Fichiers joints
imprimecran
imprimecran
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#7

Message par Y01 »

Je ne comprends pas pourquoi le send ne fonctionne pas.

Par contre, il est toujours possible d'ouvrir le site avec les identifiants en commande.

Code : Tout sélectionner

#include <IE.au3>
$login="login"
$mdp="mot de passe"
Local $oIE = _IECreate("https://" & $login & ":" & $mdp & "@1294.admin.gpaas.net")
Y01
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#8

Message par danieller »

Désolé mais je n'ai pas compris le passage en commande.
Ok pour les 2 variables, mais pour que ces dernières s'incluent dans les champs de la fenêtre de connexion, la j'avoue...

Merci.
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#9

Message par danieller »

Après il y a la solution d'enregistrer les identifiants de connexion.. mais je n'aime pas trop cela.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2127
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#10

Message par TommyDDR »

La fenêtre de sécurité windows s'exécute en tant qu'administrateur, et votre compte doit avoir l'UAC d'activé (et donc interdiction d'interragir avec des fenêtres admin).
Essayez d'ajouter #RequireAdmin en début de script.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Clampu
Niveau 3
Niveau 3
Messages : 48
Enregistré le : mer. 16 mai 2012 22:08
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#11

Message par Clampu »

Peut être que _IECreate attend que la page soit chargée, ce qui n'arrive pas tant que tu n'a pas saisi l'identifiant. En gros ton Send attend que _IECreate soit terminé, et _IECreate a besoin de Send

Ce que tu peux faire c'est changer ton _IECreate par un

Code : Tout sélectionner

ShellExecute("iexplore", "https://124444.admincjh.gpuus.net")
WinWaitActive("Sécurité de Windows") ; a déterminer avec le AWI
Le mieux est d'utiliser les controles windows à la place de send comme ceci (renseigne toi sur le AWI : Autoit Windows Info, si tu ne connais pas)

Code : Tout sélectionner

ShellExecute("iexplore", "https://124444.admincjh.gpuus.net")
WinWaitActive("Sécurité de Windows") ; a déterminer avec le AWI
ControlSend("Sécurité de Windows", "", "[CLASSNN:xxxxxxxxx]", "user") ; idem
ControlSend("Sécurité de Windows", "", "[CLASSNN:yyyyyyyy]", "mdp") ; idem
ControlClick("Sécurité de Windows", "", "[CLASSNN:zzzzzzzzz]") ; bouton OK, idem
C'est plus propre que des Send
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#12

Message par Y01 »

danieller a écrit :Désolé mais je n'ai pas compris le passage en commande.
Ok pour les 2 variables, mais pour que ces dernières s'incluent dans les champs de la fenêtre de connexion, la j'avoue...

Merci.
Le code que je t'ai mis est fonctionnel...

Il te suffit de changer les variables par tes identifiants. Si tu ne souhaite pas les inscrire en dur, tu peux toujours faire une GUI dans laquelle tu inscris tes identifiants qui seront stockés jusqu'à la fermeture de la GUI.
Y01
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#13

Message par jguinch »

@Tommy : on parle bien de page web sécurisée par mot de passe (type .htaccess), pas de l'UAC. Donc la popup de sécurité s'exécute dans le contexte utilisateur, non ?

Avec ce code, ça fonctionne chez moi, uniquement sous Windows 7 (pas sous XP, et je n'ai pas Windows 8)
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
danieller
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mer. 07 janv. 2015 15:49
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#14

Message par danieller »

Bonsoir, j'ai réussi a faire fonctionner le script grace à vos réponses,

voici ce que j'ai fait :

Code : Tout sélectionner


#include <IE.au3>

ShellExecute("iexplore", "https://12.admingpaas.net/phpmyadmin/index.php")
WinWaitActive("Sécurité de Windows")
Send("login")
Send("{TAB}")
Send("mdp")
Send("{ENTER}")

 
merci
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#15

Message par jguinch »

ControlSend est plus propre/fiable/conseillé qu'un Send qui risque d'être bancal... :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#16

Message par orax »

+1 pour ControlSend
Le #include <IE.au3> ne devrait plus être nécessaire.
Y01 a écrit :Par contre, il est toujours possible d'ouvrir le site avec les identifiants en commande.

Code : Tout sélectionner

...
Local $oIE = _IECreate("https://" & $login & ":" & $mdp & "@1294.admin.gpaas.net")
Cette solution est bonne mais si la version d'IE est récente, ça ne devrait pas marcher. J'ai lu ça sur le support de Microsoft :
Comportement par défaut d'Internet Explorer pour la gestion des informations utilisateur dans les URL HTTP et HTTPS a écrit :Par défaut, les versions de Windows Internet Explorer qui ont été publiées depuis la version finale de la mise à jour de sécurité 832894 ne prennent pas en charge la gestion des noms d'utilisateur et des mots de passe dans les URL HTTP, HTTP avec SSL (Secure Socket Layer) et HTTPS. La syntaxe d'URL suivante n'est pas prise en charge dans Internet Explorer ou dans l'Explorateur Windows :
http(s)://nom_utilisateur:mot_de_passe@serveur/ressource.ext
Le comportement par défaut a donc été changé pour des raisons de sécurité.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] Remplir une fenetre windows

#17

Message par Y01 »

Merci pour l'info Orax !

J'avais fait un test sous IE8 et ça fonctionnait sinon je n'aurais pas mis cette solution :)
Y01
Répondre