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

Création objet Wscript dans IE via un VBS ?

9 réponses
Avatar
Fabrice
Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines actions et
notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le "CreateObject",
il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER"" name=""Binstall"">"
.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------

9 réponses

Avatar
Fabrice
En fait le message d'erreur sous IE obtenu sur le "CreateObject" est le
suivant :

"Un Composant ActiveX ne peut pas créer un objet : 'Wscript.Shell'

Donc je suppose que je dois m'asseoir dessus mais si qqun de MS ou
d'ailleurs pouvait me le confirmer avant que j'envisage une autre
solution...

"Fabrice" a écrit dans le message news:
425b9404$0$23050$
Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines actions
et

notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le "CreateObject",
il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER"" name=""Binstall"">"
.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------




Avatar
Jean
Désolé pour la date de mon post ... (un problème avec le changement d'heure et le multi-boot :-)

Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:
Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une instance d'Internet Explorer.
Vous dépendez dès lors de la configuration de sécurité d'Internet Explorer qui par défaut ne permet pas accès aux objets non
déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre une erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du contenu de la balise script.

Si vous remplacez le progid "Wscript.Shell" par "Scripting.Dictionary" par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute de créer un fichier HTA contenant le code que vous injectiez
à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news: 425b9404$0$23050$
Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines actions et
notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le "CreateObject",
il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER"" name=""Binstall"">"
.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------









Avatar
Fabrice
Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement la
situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser votre
idée.
Mon idée initiale était d'avoir un script complètement autonome (1 seul
fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le document IE
en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou il
serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique ira très
bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une
instance d'Internet Explorer.


Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre une
erreur de script dans votre instance d'IE crée à l'aide de


l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du contenu
de la balise script.



Si vous remplacez le progid "Wscript.Shell" par "Scripting.Dictionary"
par exemple, ça fonctionnera parceque l'objet


Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute de
créer un fichier HTA contenant le code que vous injectiez


à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec
un



document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie
de



procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------













Avatar
Jean
Bonjour,

un HTA en gros c'est un fichier HTM renommé avec l'extension HTA.
Ces fichiers ne dépendent pas de la sécurité IE.

La documentation des HTA est ici :
http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp

Vous trouverez diverses infos sur ces fichiers sur ce groupe (utilisez la recherche News de Google).

Pour votre fichier ça fera en gros :

<!---8<---fichier.hta--->
<HTML>
<HEAD>
<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFD2" scroll="yes">
<script language="VBScript">

Sub Binstall_OnClick
MsgBox "Avant"
Set oShell = CreateObject("Wscript.Shell")
MsgBox "Après"
End Sub

</script>
<form name="FInstallImp">
<input type="button" value="INSTALLER" name="Binstall">
</form>
</BODY>
</HTML>
<!---8<---fichier.hta--->
Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news: 425ba204$0$23059$
Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement la
situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser votre
idée.
Mon idée initiale était d'avoir un script complètement autonome (1 seul
fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le document IE
en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou il
serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique ira très
bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une
instance d'Internet Explorer.


Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre une
erreur de script dans votre instance d'IE crée à l'aide de


l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du contenu
de la balise script.



Si vous remplacez le progid "Wscript.Shell" par "Scripting.Dictionary"
par exemple, ça fonctionnera parceque l'objet


Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute de
créer un fichier HTA contenant le code que vous injectiez


à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec
un



document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie
de



procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------

















Avatar
Fabrice
Merci encore.
Par contre cela ne marche pas. En "live", dans une instance IE il me produit
la même erreur (avec les marqueurs HTA que vous m'avez fournis).
Je suppose que le fichier doit être enregistré sur le disque et ensuite
ouvert pour pouvoir être interprété correctement.
En tout cas merci pour le conseil je vais devoir me résoudre à avoir
plusieurs fichiers visiblement.
Mais j'aurais au moins ouvert mon horizon avec les fichiers HTA.

Cordialement.

"Jean" <http:// a écrit dans le message news:

Bonjour,

un HTA en gros c'est un fichier HTM renommé avec l'extension HTA.
Ces fichiers ne dépendent pas de la sécurité IE.

La documentation des HTA est ici :
http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp

Vous trouverez diverses infos sur ces fichiers sur ce groupe (utilisez la
recherche News de Google).


Pour votre fichier ça fera en gros :

<!---8<---fichier.hta--->
<HTML>
<HEAD>
<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFD2" scroll="yes">
<script language="VBScript">

Sub Binstall_OnClick
MsgBox "Avant"
Set oShell = CreateObject("Wscript.Shell")
MsgBox "Après"
End Sub

</script>
<form name="FInstallImp">
<input type="button" value="INSTALLER" name="Binstall">
</form>
</BODY>
</HTML>
<!---8<---fichier.hta--->
Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba204$0$23059$

Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement la
situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser
votre


idée.
Mon idée initiale était d'avoir un script complètement autonome (1 seul
fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le
document IE


en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou il
serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique ira
très


bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une
instance d'Internet Explorer.


Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre
une




erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du
contenu




de la balise script.

Si vous remplacez le progid "Wscript.Shell" par
"Scripting.Dictionary"




par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute
de




créer un fichier HTA contenant le code que vous injectiez
à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE
avec





un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien être
un





autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject"
(sortie





de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution
?






Suffit d'exécuter le script ci-dessous vous vous rendrez compte que
le





Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------






















Avatar
Jean
Bonjour,

vous devez nommer le fichier "fichier.hta" ... pas "fichier.htm" :-)

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news: 425ba9eb$0$23053$
Merci encore.
Par contre cela ne marche pas. En "live", dans une instance IE il me produit
la même erreur (avec les marqueurs HTA que vous m'avez fournis).
Je suppose que le fichier doit être enregistré sur le disque et ensuite
ouvert pour pouvoir être interprété correctement.
En tout cas merci pour le conseil je vais devoir me résoudre à avoir
plusieurs fichiers visiblement.
Mais j'aurais au moins ouvert mon horizon avec les fichiers HTA.

Cordialement.

"Jean" <http:// a écrit dans le message news:

Bonjour,

un HTA en gros c'est un fichier HTM renommé avec l'extension HTA.
Ces fichiers ne dépendent pas de la sécurité IE.

La documentation des HTA est ici :
http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp

Vous trouverez diverses infos sur ces fichiers sur ce groupe (utilisez la
recherche News de Google).


Pour votre fichier ça fera en gros :

<!---8<---fichier.hta--->
<HTML>
<HEAD>
<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFD2" scroll="yes">
<script language="VBScript">

Sub Binstall_OnClick
MsgBox "Avant"
Set oShell = CreateObject("Wscript.Shell")
MsgBox "Après"
End Sub

</script>
<form name="FInstallImp">
<input type="button" value="INSTALLER" name="Binstall">
</form>
</BODY>
</HTML>
<!---8<---fichier.hta--->
Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba204$0$23059$

Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement la
situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser
votre


idée.
Mon idée initiale était d'avoir un script complètement autonome (1 seul
fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le
document IE


en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou il
serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique ira
très


bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une
instance d'Internet Explorer.


Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre
une




erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du
contenu




de la balise script.

Si vous remplacez le progid "Wscript.Shell" par
"Scripting.Dictionary"




par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute
de




créer un fichier HTA contenant le code que vous injectiez
à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE
avec





un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien être
un





autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject"
(sortie





de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution
?






Suffit d'exécuter le script ci-dessous vous vous rendrez compte que
le





Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------



























Avatar
Fabrice
Oui en fait le truc c'est que j'abandonne mon fichier .VBS pour mon script
et que je mette mon code VBSCRIPT dans un .HTA.
Au final j'aurais toujours un seul fichier donc cela correspondra à mon
besoin

C'est ça que vous voulez me dire je pense et que j'ai pas saisi de suite ?
:-).

Désolé jsuis un peu dur à la comprenette parfois.

"Jean" <http:// a écrit dans le message news:
OR5UR#
Bonjour,

vous devez nommer le fichier "fichier.hta" ... pas "fichier.htm" :-)

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba9eb$0$23053$

Merci encore.
Par contre cela ne marche pas. En "live", dans une instance IE il me
produit


la même erreur (avec les marqueurs HTA que vous m'avez fournis).
Je suppose que le fichier doit être enregistré sur le disque et ensuite
ouvert pour pouvoir être interprété correctement.
En tout cas merci pour le conseil je vais devoir me résoudre à avoir
plusieurs fichiers visiblement.
Mais j'aurais au moins ouvert mon horizon avec les fichiers HTA.

Cordialement.

"Jean" <http:// a écrit dans le message news:

Bonjour,

un HTA en gros c'est un fichier HTM renommé avec l'extension HTA.
Ces fichiers ne dépendent pas de la sécurité IE.

La documentation des HTA est ici :
http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp

Vous trouverez diverses infos sur ces fichiers sur ce groupe (utilisez
la



recherche News de Google).

Pour votre fichier ça fera en gros :

<!---8<---fichier.hta--->
<HTML>
<HEAD>
<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFD2" scroll="yes">
<script language="VBScript">

Sub Binstall_OnClick
MsgBox "Avant"
Set oShell = CreateObject("Wscript.Shell")
MsgBox "Après"
End Sub

</script>
<form name="FInstallImp">
<input type="button" value="INSTALLER" name="Binstall">
</form>
</BODY>
</HTML>
<!---8<---fichier.hta--->
Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba204$0$23059$

Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement
la




situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser
votre


idée.
Mon idée initiale était d'avoir un script complètement autonome (1
seul




fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le
document IE


en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou
il




serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique
ira




très
bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à
une






instance d'Internet Explorer.
Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et
engendre






une
erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du
contenu




de la balise script.

Si vous remplacez le progid "Wscript.Shell" par
"Scripting.Dictionary"




par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans
doute






de
créer un fichier HTA contenant le code que vous injectiez
à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE
avec





un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien
être







un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire,
ma







fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject"
(sortie





de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une
solution







?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte
que







le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------































Avatar
Jean
C'est ça que vous voulez me dire je pense et que j'ai pas saisi de suite ?
:-).


Yessssssss :-)

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news: 425bb59d$0$5189$
Oui en fait le truc c'est que j'abandonne mon fichier .VBS pour mon script
et que je mette mon code VBSCRIPT dans un .HTA.
Au final j'aurais toujours un seul fichier donc cela correspondra à mon
besoin

C'est ça que vous voulez me dire je pense et que j'ai pas saisi de suite ?
:-).

Désolé jsuis un peu dur à la comprenette parfois.

"Jean" <http:// a écrit dans le message news:
OR5UR#
Bonjour,

vous devez nommer le fichier "fichier.hta" ... pas "fichier.htm" :-)

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba9eb$0$23053$

Merci encore.
Par contre cela ne marche pas. En "live", dans une instance IE il me
produit


la même erreur (avec les marqueurs HTA que vous m'avez fournis).
Je suppose que le fichier doit être enregistré sur le disque et ensuite
ouvert pour pouvoir être interprété correctement.
En tout cas merci pour le conseil je vais devoir me résoudre à avoir
plusieurs fichiers visiblement.
Mais j'aurais au moins ouvert mon horizon avec les fichiers HTA.

Cordialement.

"Jean" <http:// a écrit dans le message news:

Bonjour,

un HTA en gros c'est un fichier HTM renommé avec l'extension HTA.
Ces fichiers ne dépendent pas de la sécurité IE.

La documentation des HTA est ici :
http://msdn.microsoft.com/workshop/author/hta/hta_node_entry.asp

Vous trouverez diverses infos sur ces fichiers sur ce groupe (utilisez
la



recherche News de Google).

Pour votre fichier ça fera en gros :

<!---8<---fichier.hta--->
<HTML>
<HEAD>
<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFD2" scroll="yes">
<script language="VBScript">

Sub Binstall_OnClick
MsgBox "Avant"
Set oShell = CreateObject("Wscript.Shell")
MsgBox "Après"
End Sub

</script>
<form name="FInstallImp">
<input type="button" value="INSTALLER" name="Binstall">
</form>
</BODY>
</HTML>
<!---8<---fichier.hta--->
Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425ba204$0$23059$

Argh oui j'avais oublié ce GROS détail concernant les limitations
volontaires de IE pour des raisons de sécurité !!!
Merci beaucoup pour ce rappel à l'ordre qui éclaircit très nettement
la




situation ! (j'aime bien comprendre les choses).

Concernant le fichier HTA, auriez vous la gentillesse de me préciser
votre


idée.
Mon idée initiale était d'avoir un script complètement autonome (1
seul




fichier), et pas un fichier VBS et un fichier HTM par exemple.
D'où la création d'une instance IE et le code VBS inséré dans le
document IE


en "live".

Pour l'idée du HTA, le fichier serait généré par le script VBS ? ou
il




serait un fichier indépendant ?
Comment génère t on un fichier HTA d'ailleurs (un lien pédagogique
ira




très
bien si vous avez ça je veux pas abuser de votre temps).

Encore merci pour vos éclaircissement géniaux.
Au plaisir de vous relire...
Cordialement.


"Jean" <http:// a écrit dans le message news:
#
Désolé pour la date de mon post ... (un problème avec le changement
d'heure et le multi-boot :-)


Jean - JMST
Belgium

"Jean" <http:// a écrit dans le message de news:


Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à
une






instance d'Internet Explorer.
Vous dépendez dès lors de la configuration de sécurité d'Internet
Explorer qui par défaut ne permet pas accès aux objets non


déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et
engendre






une
erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du
contenu




de la balise script.

Si vous remplacez le progid "Wscript.Shell" par
"Scripting.Dictionary"




par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans
doute






de
créer un fichier HTA contenant le code que vous injectiez
à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news:
425b9404$0$23050$


Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE
avec





un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines
actions et



notamment créer un objet Wscript.Shell (mais cela pourrait bien
être







un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire,
ma







fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject"
(sortie





de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une
solution







?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte
que







le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le
"CreateObject",



il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER""
name=""Binstall"">"



.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------



































Avatar
Jean
Bonjour,

c'est parceque l'objet InternetExplorer.Application donne accès à une instance d'Internet Explorer.
Vous dépendez dès lors de la configuration de sécurité d'Internet Explorer qui par défaut ne permet pas accès aux objets non
déclarés sûr pour la navigation.
WScript.Shell n'est pas déclaré sûr pour la navigation et engendre une erreur de script dans votre instance d'IE crée à l'aide de
l'objet InternetExplorer.Application.
Cette erreur engendre la fin de l'interprétation (exécution) du contenu de la balise script.

Si vous remplacez le progid "Wscript.Shell" par "Scripting.Dictionary" par exemple, ça fonctionnera parceque l'objet
Scripting.Dictionary est déclaré sûr pour la navigation.

Le plus simple (si vous avez besoin de Wscript.Shell) sera sans doute de créer un fichier HTA contenant le code que vous injectiez à
coups de writeln dans l'objet InternetExplorer.Application.

Amicalement,

Jean - JMST
Belgium

"Fabrice" a écrit dans le message de news: 425b9404$0$23050$
Voilà, j'ai un ptit script ci-dessous qui créé une instance de IE avec un
document sur lequel je veux créer un formulaire.
Sur l'appui d'un bouton du formulaire je veux exécuter certaines actions et
notamment créer un objet Wscript.Shell (mais cela pourrait bien être un
autre).
Mais quand je clique sur le bouton "Installer" de mon formulaire, ma
fonction "Sub Binstall_OnClick" s'arrête sur le "CreateObject" (sortie de
procédure en fait je pense).

Pourriez vous me dire si c'est normal , et si vous avez une solution ?

Suffit d'exécuter le script ci-dessous vous vous rendrez compte que le
Msgbox avant le "CreateObject" s'affiche, mais qu'après le "CreateObject",
il ne s'affiche pas comme si on sortait de la procédure.

Merci d'avance pour votre aide précieuse.
Cordialement.

------
Option Explicit
Dim oIE, oIEDoc
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.document
With oIEDoc
.WriteLn "<HTML>"
.WriteLn "<HEAD>"
.WriteLn "<TITLE> OBJET WSCRIPT DS PAGE IE DYNAMIQUE</TITLE>"
.WriteLn "</HEAD>"
.WriteLn "<BODY BGCOLOR=""#FFFFD2"" scroll=""yes"">"
.WriteLn "<script language=""VBScript"">"
.WriteLn "<!--"
.WriteLn "Sub Binstall_OnClick"
.WriteLn " MsgBox ""Avant"""
.WriteLn " Set oShell = CreateObject(""WScript.Shell"")"
.WriteLn " MsgBox ""Après"""
.WriteLn "End Sub"
.WriteLn "'-->"
.WriteLn "</script>"
.WriteLn "<form name=""FInstallImp"">"
.WriteLn "<input type=""button"" value=""INSTALLER"" name=""Binstall"">"
.WriteLn "</form>"
.WriteLn "</BODY>"
.WriteLn "</HTML>"
End With
oIE.Refresh
oIE.Visible = True
------