PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Probleme Exécution programme visual basic
Probleme Exécution programme visual basic
Débuté par Greg, 08 fév. 2006 14:47 - 1 réponse
Posté le 08 février 2006 - 14:47
FUNCTION GetComputerInfo(pComputerName="SERVSDIS")

objWMIService est un objet Automation "MSScriptControl.ScriptControl"
ProgrammeVbs est une chaîne
ResultatVbs est une chaîne


ProgrammeVbs = "Set Container = GetObject("+Caract(34)+"LDAP://CN=Computers,DC=sdis,DC=fr"+Caract(34)+")" +CRLF
ProgrammeVbs += "For Each Child in Container" +CRLF
ProgrammeVbs += "Result = Child.Name" +CRLF
ProgrammeVbs += "Result = Mid(Result,4)" + CRLF
ProgrammeVbs += "Next" + CRLF


objWMIService>>Language("VBScript")
objWMIService>>Reset()

WHEN EXCEPTION IN
objWMIService>>AddCode(ProgrammeVbs)
DO
Erreur("Erreur dans le programme vbs...")
RENVOYER ""
END

ResultatVbs = ""
WHEN EXCEPTION IN
ResultatVbs = objWMIService>>Eval("InfoComputer("+Caract(34)+Result+Caract(34)+")")

// Mon problème se situe juste en haut au moment de l'exécution de la fonction stockée dans ProgrammeVbs objWMIService>>Eval ("...") apparemment la syntaxe n est pas bonne mon petit programme fonctionne je l ai testé mais je n arrive pas a le faire marcher sous windev donc c'est un peu chiant

DO
Erreur("Erreur d'execution du programme vbs")
RENVOYER ""
END

IF ResultatVbs<>"" THEN ResultatVbs = ResultatVbs[[1 sur Taille(ResultatVbs)-2]]

RENVOYER ResultatVbs



L'erreur est mauvaise syntaxe ... pour ce qu'il y a apres le Eval merci de m'aider
Posté le 08 février 2006 - 17:00
Bonjour,
c'est normal car
1° il manque 3 lignes au minimum : La déclaration de la fonction VBS et le renvoie du résultat
2° L'appel est faux

1°----------------------------------------------------------------------------
ProgrammeVbs = "Function InfoComputer()"+CRLF // DECLARATION

ProgrammeVbs += "Set Container = GetObject("+Caract(34)+"LDAP://CN=Computers,DC=sdis,DC=fr"+Caract(34)+")" +CRLF
ProgrammeVbs += "For Each Child in Container" +CRLF
ProgrammeVbs += "Result = Child.Name" +CRLF
ProgrammeVbs += "Result = Mid(Result,4)" + CRLF
ProgrammeVbs += "Next" + CRLF

ProgrammeVbs += "InfoComputer = Result"+CRLF // AFFECTATION DU RESULTAT
ProgrammeVbs += "End Function"+CRLF // FIN DE LA FONCTION

2°----------------------------------------------------------------------------
ResultatVbs = objWMIService>>Eval("InfoComputer()") // Appel