IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Appel d'une procédure avec argument d'un autre script


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Par défaut Appel d'une procédure avec argument d'un autre script
    Bonjour,
    J'ai 2 scripts: l'un considéré comme librairie (common.vbs) et l'autre comme script principal.
    Dans le script principal j'utilise une variable d'environnement que j'ai définis dans SYSTEM:GL_Software_Src.
    Dans le script principal, j'ai ce fragment de script qui installe Ms Office 2007 en silence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Install_MsOffice2007
    	Office2007Path=GetVarEnvValue("GL_Software_Src" , "SYSTEM") & "\Office 2007" 
    	ExecuteMsDosCmd(Office2007Path & "\Setup.exe /config  " & Office2007Path & "\PROPLUS.WW\config.xml")
    End Sub
    Dans common.vbs, la procédure ExecuteMsDosCmd qui permet d'exécuter une commande Ms Dos est définie de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Sub ExecuteMsDosCmd(Cde) ' As String)
    	Dim objShell,objScriptExec
    	Set objShell = CreateObject("WScript.Shell" )
    	Set objScriptExec = objShell.Exec("cmd /C " & Cde)'& cde,0,true)
    End Sub
    Dans le script principal, j'utilise la procédure ExecuteFileContents pour inclure common.vbs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ExecuteFileContents(strFile)
    	ForReading=1
    	Set WshShell = CreateObject("WScript.Shell" )
    	strFile = WshShell.ExpandEnvironmentStrings(strFile)
    	Set objFs = CreateObject("Scripting.FileSystemObject") 
    	strFile = objFs.GetAbsolutePathName(strFile)
    	'Wscript.Echo StrFile
    	StrFile="z:\Misc\Common.vbs"
    	Set objFile = objFs.OpenTextFile(strFile, ForReading)
    	strCode = objFile.ReadAll
    	objFile.Close
    	ExecuteGlobal strCode
    End Sub
    Le problème:
    Quand j'exécute Sub Install_MsOffice2007, il me génère une erreur: "Type incompatible", mais quand je copie le code de la procédure ExecuteMsDosCmd dans le script principal (déclaration) et que j'exécute Sub Install_MsOffice2007, il n'y a aucune erreur signalée.

    A votre avis cette erreur est due à quoi?

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Par défaut
    Essayes avec WshShell.run pour lancer common.vbs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WshShell = WScript.CreateObject("WScript.Shell")

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/03/2014, 09h38
  2. Appel par bouton d'une procédure avec argument
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/05/2012, 15h48
  3. [XL-2010] Appel de procédure avec arguments pour RowSource d'une ListBox
    Par RicardoBxl dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/01/2011, 22h06
  4. Appel d'une procédure stockée avec un curseur
    Par lapanne dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/12/2006, 16h24
  5. Réponses: 1
    Dernier message: 22/11/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo