Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ouverture d'une page internet

12 réponses
Avatar
sabV
bonjour à tous,

le code suivant fonctionne bien si aucune autre page internet n'est ouverte au moment de son exécution.
mais provoque une erreur lorsqu'il y a déjà une autre page internet ouverte,

L'erreur est que:
internet s'ouvre, et le menu "Démarrer" s'ouvre en même temps ce qui fait que l'ouverture de la page
"https://secure.myterminals.com/..." est interrompu au moment ou
"MonUserName" et "MonPassword~" doivent s'inscrire.

existe t'il une commande que je pourrais ajouter afin d'éviter ou de contourner ce problème ?

Dim oIE, oSh
Set oSh = CreateObject("WScript.Shell")
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = True
oIE.Navigate ("https://secure.myterminals.com/CA/ATM/menu.aspx")
Do While oIE.busy
Loop
If Not Left(oIE.Document.title,8)="HTTP 404" Then
oSh.SendKeys "MonUserName"
oSh.SendKeys "{TAB}"
oSh.SendKeys "MonPassword~"
End if

par avance merci pour votre aide.

sabV (débutant sur VBSripting)

10 réponses

1 2
Avatar
Gilles LAURENT
"sabV" a écrit dans le message de
news:
| bonjour à tous,

Bonjour,

| le code suivant fonctionne bien si aucune autre page internet n'est
| ouverte au moment de son exécution. mais provoque une erreur
| lorsqu'il y a déjà une autre page internet ouverte,

-- Coupez ici : IEAuto.vbs --

Option Explicit

' déclaration des variables
Dim oIE, oSh

' initialisation
Set oSh = CreateObject ("WScript.Shell")
Set oIE = CreateObject ("InternetExplorer.Application")

' navigation à l'adresse url spécifiée
oIE.Navigate ("https://secure.myterminals.com/CA/ATM/menu.aspx")

' attente de la fin du chargement de la page
Do While oIE.busy
WScript.Sleep (100)
Loop

' affichage de la fenêtre Internet Explorer
oIE.Visible = True

' activation de la fenêtre Internet Explorer
' cette commande va positionner la fenêtre en premier plan
oSh.AppActivate oIE.Document.Title

' injection des informations de login uniquement si la page a été
trouvée
If Not Left (oIE.Document.title,8) = "HTTP 404" Then
oIE.document.getElementById ("txtLogin").Value = "MonUserName"
oIE.document.getElementById ("txtPassword").Value = "MonPassword"
oIE.document.getElementById("cmdGo").Click
End if

-- Coupez ici : IEAuto.vbs --

Note : L'injection par Sendkeys est à proscrire car il est difficile
d'être certain que les séquences arriveront dans les bonnes fenêtres de
saisies (c'était précisémement votre problème car la fenêtre IE n'avait
pas le focus car celle-ci se trouvait dans l'état minimisé). Dans le cas
d'une page web, il est préférable d'écrire directement dans les champs
de saisies en s'appuyant sur les elementId HTML associés.

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
sabV
bonjour Gilles LAURENT,

tout d'abord merci beaucoup pour ces renseignements,
si je peut abusé encore un peu de votre expérience,
vous me dite :

Dans le cas d'une page web, il est préférable d'écrire directement dans les champs
de saisies en s'appuyant sur les elementId HTML associés.


pourriez vous m'indiquer comment modifier mon code,
à partir des éléments connus suivant, quel serait la syntaxe pour utilisé les elementId HTML associés

'source de la page :
<table class="ThickBorder">
<tr><td colspan=3> &nbsp; </td></tr>
<tr>
<td>
<span id="lblLogin" class="RegularLabel">Username:</span>
</td>
<td>
<input name="txtLogin" type="text" id="txtLogin" tabindex="1" style="width:145px;" />
</td>
<td rowspan="2" valign=bottom>
<input type="submit" name="cmdGo" value="Login" id="cmdGo" tabindex="3" class="cmd" />
</td>
</tr>
<tr>
<td>
<span id="lblPassword" class="RegularLabel">Password:</span>
</td>
<td>
<input name="txtPassword" type="password" id="txtPassword" tabindex="2" style="width:145px;" />
</td>
</tr>
<tr><td colspan=3> &nbsp; </td></tr>
</table>
<!-- End Login Promptt -->
merci,
sabV

Avatar
sabV
bonjour gilles,

merci beaucoup pour ces renseignements, tout fonctionne correctement grace à vous,
si je peut abuser encore,
pourriez vous m'indiquer la syntaxe pour agrandir cette fenêtre,
j'ai essayé cette syntaxe :
ActiveWindow.WindowState = Maximized
mais elle n'a aucun effect.

merci,
isabelle


"sabV" a écrit dans le message de
news:
| bonjour à tous,

Bonjour,

| le code suivant fonctionne bien si aucune autre page internet n'est
| ouverte au moment de son exécution. mais provoque une erreur
| lorsqu'il y a déjà une autre page internet ouverte,

-- Coupez ici : IEAuto.vbs --

Option Explicit

' déclaration des variables
Dim oIE, oSh

' initialisation
Set oSh = CreateObject ("WScript.Shell")
Set oIE = CreateObject ("InternetExplorer.Application")

' navigation à l'adresse url spécifiée
oIE.Navigate ("https://secure.myterminals.com/CA/ATM/menu.aspx")

' attente de la fin du chargement de la page
Do While oIE.busy
WScript.Sleep (100)
Loop

' affichage de la fenêtre Internet Explorer
oIE.Visible = True

' activation de la fenêtre Internet Explorer
' cette commande va positionner la fenêtre en premier plan
oSh.AppActivate oIE.Document.Title

' injection des informations de login uniquement si la page a été
trouvée
If Not Left (oIE.Document.title,8) = "HTTP 404" Then
oIE.document.getElementById ("txtLogin").Value = "MonUserName"
oIE.document.getElementById ("txtPassword").Value = "MonPassword"
oIE.document.getElementById("cmdGo").Click
End if

-- Coupez ici : IEAuto.vbs --

Note : L'injection par Sendkeys est à proscrire car il est difficile
d'être certain que les séquences arriveront dans les bonnes fenêtres de
saisies (c'était précisémement votre problème car la fenêtre IE n'avait
pas le focus car celle-ci se trouvait dans l'état minimisé). Dans le cas
d'une page web, il est préférable d'écrire directement dans les champs
de saisies en s'appuyant sur les elementId HTML associés.



Avatar
Gilles LAURENT
"sabV" a écrit dans le message de
news:%
| bonjour Gilles LAURENT,

Bonjour,
Gilles suffira :-)

| > Dans le cas d'une page web, il est préférable d'écrire directement
| dans les champs > de saisies en s'appuyant sur les elementId HTML
| associés.
|
| pourriez vous m'indiquer comment modifier mon code,
| à partir des éléments connus suivant, quel serait la syntaxe pour
| utilisé les elementId HTML associés

Les noms des elementId sont dans le code vbscript. Je les ai simplement
extraits de la page HTML

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
sabV
oups, sorry Gilles, je n'ai pas annulé ce message assez rapidement,
et j'ai envoyé celui ci à la place :
pourriez vous m'indiquer la syntaxe pour agrandir cette fenêtre,

isasbelle


"sabV" a écrit dans le message de
news:%
| bonjour Gilles LAURENT,

Bonjour,
Gilles suffira :-)

| > Dans le cas d'une page web, il est préférable d'écrire directement
| dans les champs > de saisies en s'appuyant sur les elementId HTML
| associés.
|
| pourriez vous m'indiquer comment modifier mon code,
| à partir des éléments connus suivant, quel serait la syntaxe pour
| utilisé les elementId HTML associés

Les noms des elementId sont dans le code vbscript. Je les ai simplement
extraits de la page HTML



Avatar
Gilles LAURENT
"sabV" a écrit dans le message de
news:
| bonjour gilles,

Bonjour Isa ;-)

| pourriez vous m'indiquer la syntaxe pour agrandir cette fenêtre,
| j'ai essayé cette syntaxe :
| ActiveWindow.WindowState = Maximized
| mais elle n'a aucun effect.

Il suffit d'ajouter la ligne suivante :
oIE.FullScreen = True

Dans le code :

--
' affichage de la fenêtre Internet Explorer
oIE.Visible = True
oIE.FullScreen = True
--

Je vous invite à consulter les évènements, propriétés et méthodes de
l'objet InternetExplorer sur le site MSDN à l'adresse suivante :
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Gilles LAURENT
"sabV" a écrit dans le message de
news:%
| oups, sorry Gilles, je n'ai pas annulé ce message assez rapidement,
| et j'ai envoyé celui ci à la place :
| pourriez vous m'indiquer la syntaxe pour agrandir cette fenêtre,

Voir la réponse plus bas dans le fil de discussion ...

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
sabV
re bonjour Gilles,

je me suis surement mal exprimer, en fait oIE.FullScreen = True
correspond pour moi à "Affichage plein écran"
mais ce que j'essai de réalisé est un "agrandir"
qui correspond à peu près à FullScreen mais en ayant tout de même accès au menu.

en vba la syntaxe est :
'_____________________________________________________________
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

'et par la suite à l'intérieur de sub

OIE.Width = GetSystemMetrics32(0)
OIE.Height = GetSystemMetrics32(1)
'_____________________________________________________________



je ne sais pas si c'est possible avec vbs pour l'objet OIE (InternetExplorer),
j'ai assayé cette méthode "Desktop" sans succès.
'__________________________________________________________________________________
Option Explicit
déclaration des variables
Dim oIE, oSh, oShellLink, strDesktop
Set oSh = CreateObject ("WScript.Shell")
Set oIE = CreateObject ("InternetExplorer.Application")
strDesktop = oSh.SpecialFolders("Desktop") ' <--------ici
set oShellLink = oSh.CreateShortcut(strDesktop & "Shortcut Script.lnk") ' <--------ici
oShellLink.WindowStyle = 3 ' <--------ici
oIE.Navigate ("https://secure.myterminals.com/CA/ATM/menu.aspx")

Do While oIE.busy
WScript.Sleep (100)
Loop

oIE.Visible = True
'__________________________________________________________________________________

votre aide est grandement apprécié.
merci,
isabelle

"sabV" a écrit dans le message de
news:%
| oups, sorry Gilles, je n'ai pas annulé ce message assez rapidement,
| et j'ai envoyé celui ci à la place :
| pourriez vous m'indiquer la syntaxe pour agrandir cette fenêtre,

Voir la réponse plus bas dans le fil de discussion ...



Avatar
Gilles LAURENT
"sabV" a écrit dans le message de
news:uFM$
| re bonjour Gilles,

Bonjour,

| je me suis surement mal exprimer, en fait oIE.FullScreen = True
| correspond pour moi à "Affichage plein écran"
| mais ce que j'essai de réalisé est un "agrandir"
| qui correspond à peu près à FullScreen mais en ayant tout de même
| accès au menu.

vbscript ne possède à ma connaissance aucune méthode pour réaliser cela.
Il faut donc réaliser cette opération en s'appuyant sur les raccourcis
clavier du shell Windows (avec tous les inconvénients du sendkeys). Cela
donne :

' affichage de la fenêtre Internet Explorer
oIE.Visible = True

' activation de la fenêtre Internet Explorer
oSh.AppActivate oIE.Document.Title

' agrandissement de la fenêtre via les raccourcis du shell
oSh.SendKeys "(% )n"

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
sympatix
Bonjour sabV, dans le message
news:uFM$
tu nous disais:
mais ce que j'essai de réalisé est un "agrandir"
qui correspond à peu près à FullScreen mais en ayant tout de même
accès au menu.



En indiquant la taille en px ?

oIE.width24
oIE.heightv8


--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

1 2