Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 09h42   #1
papyxy
Membre actif
 
Homme alain
retraité
Inscription : juillet 2011
Messages : 207
Détails du profil
Informations personnelles :
Nom : Homme alain
Âge : 67
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : retraité

Informations forums :
Inscription : juillet 2011
Messages : 207
Points : 152
Points : 152
Envoyer un message via MSN à papyxy Envoyer un message via Yahoo à papyxy Envoyer un message via Skype™ à papyxy
Par défaut Equivalent de ShowModalDialog pour un VBS

Bonjour
Je cherche un moyen d'exécuter un sous-programme externe qui me renvoie une valeur à partir d'un programme VBS.
papyxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 10h50   #2
omen999
Rédacteur
 
Avatar de omen999
 
Inscription : février 2006
Messages : 903
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 903
Points : 2 242
Points : 2 242
bonjour,
je ne vois pas trop le rapport entre le titre et le contenu du message
la méthode Exec de l'objet WScript.Shell permet d'exécuter un programme externe et de récupérer
les données renvoyées par l'intermédiaire de l'objet StdOut
avec certains inconvénients : lire ici et ici
__________________
nomen omen, nemo non omen
le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
pas de questions techniques par mp
omen999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 11h16   #3
papyxy
Membre actif
 
Homme alain
retraité
Inscription : juillet 2011
Messages : 207
Détails du profil
Informations personnelles :
Nom : Homme alain
Âge : 67
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : retraité

Informations forums :
Inscription : juillet 2011
Messages : 207
Points : 152
Points : 152
Envoyer un message via MSN à papyxy Envoyer un message via Yahoo à papyxy Envoyer un message via Skype™ à papyxy
je m'explique : à partir d'un programme xxxx.vbs, je souhaite exécuter un sous-programme externe yyyy.hta qui devrait me retourner une valeur vers l' appelant.
J'ai fait un essai en utilisant .exec("yyyy.hta"), mais j'ai une erreur sur celui-ci :
"yyyy.hta n'est pas une application Win32 valide."
papyxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 17h27   #4
omen999
Rédacteur
 
Avatar de omen999
 
Inscription : février 2006
Messages : 903
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 903
Points : 2 242
Points : 2 242
Code :
.exec "mshta file://localhost/C:/yyyy.hta"
où yyyy.hta est dans le répertoire racine du disque c:
__________________
nomen omen, nemo non omen
le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
pas de questions techniques par mp
omen999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 20h49   #5
papyxy
Membre actif
 
Homme alain
retraité
Inscription : juillet 2011
Messages : 207
Détails du profil
Informations personnelles :
Nom : Homme alain
Âge : 67
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : retraité

Informations forums :
Inscription : juillet 2011
Messages : 207
Points : 152
Points : 152
Envoyer un message via MSN à papyxy Envoyer un message via Yahoo à papyxy Envoyer un message via Skype™ à papyxy
Ca me plait bien mais je ne sais pas comment transmettre la valeur depuis le sous-programme yyyy.hta.
J'ai essayé avec
Code :
window.returnvalue= ...
cela me donne une erreur (sans doute parce que l'appelant est un VBS).
Sinon je vais passer par les registres pour stocker cette valeur de retour, afin de la récupérer dans l'appelant. (ça me parait un peu lourd, mais ça fonctionne)
papyxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 16h46   #6
omen999
Rédacteur
 
Avatar de omen999
 
Inscription : février 2006
Messages : 903
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 903
Points : 2 242
Points : 2 242
Citation:
cela me donne une erreur (sans doute parce que l'appelant est un VBS).
je confirme
Citation:
ça me parait un peu lourd
mmm, enfin un esthète
edit :
mais il existe un solution qui utilise une fonction non documentée de l'objet WshScriptExec FileSystemObject, la fonction GetStandardStream
peut-être un jour un article sur l'undocumented vbs

un exemple :
le fichier test.vbs :
Code :
MsgBox CreateObject("WScript.Shell").Exec("mshta.exe file://localhost/C:/Documents%20and%20Settings/omen999/Mes%20documents/test.hta").StdOut.ReadAll
le script appelle le fichier test.hta situé dans "Mes documents" de l'utilisateur omen999 (à maj évidemment)
le fichier test.hta :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html>
	<HEAD> 
	<TITLE>Modal Dialog by omen999</TITLE>
	<HTA:APPLICATION ID = 'IDTest'
		APPLICATIONNAME="Test"
		MAXIMIZEBUTTON="no"
		MINIMIZEBUTTON="no"
		CONTEXTMENU="no"
		SYSMENU="yes"
		SCROLL="no"
	>
	<script language="VBScript">
	Sub Window_onLoad
		window.resizeTo 250,150
	End Sub
'
	Sub  btValid_OnClick
		CreateObject("Scripting.FileSystemObject").GetStandardStream(1).WriteLine "btValid clicked"	
		window.Close 
	End Sub
 
	Sub  btAnnule_OnClick
	    CreateObject("Scripting.FileSystemObject").GetStandardStream(1).WriteLine("btAnnule clicked")
	    window.Close 
	End Sub	
	</script>
	</HEAD>
	<BODY>
	TEST BOITE MODALE
 	<input  type="button" value="OK" name="btValid" STYLE="position: absolute; top: 80px; left: 70px; width : 80px;" >
 	<input type="button" value="Annuler" name="btAnnule" STYLE="position: absolute; top: 80px; left: 155px; width : 80px;" >
	</BODY>
</html>
le choix de l'utilisateur s'affichera dans la MsgBox du script vbs
__________________
nomen omen, nemo non omen
le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
pas de questions techniques par mp
omen999 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2012, 15h58   #7
papyxy
Membre actif
 
Homme alain
retraité
Inscription : juillet 2011
Messages : 207
Détails du profil
Informations personnelles :
Nom : Homme alain
Âge : 67
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : retraité

Informations forums :
Inscription : juillet 2011
Messages : 207
Points : 152
Points : 152
Envoyer un message via MSN à papyxy Envoyer un message via Yahoo à papyxy Envoyer un message via Skype™ à papyxy
Je te remercie Omen pour ta prestation.
J'apprécie le dévouement sur ce forum de la part de certaines personnes.
papyxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h02.


 
 
 
 
Partenaires

Hébergement Web