garder la valeur d'un champs VBS vers html - VB/VBA/VBS - Programmation
Marsh Posté le 01-09-2009 à 21:13:28
Je fais plus de vbs depuis longtemps mais si je ne me trompe pas là ton script il crée une fenêtre IE à partir d'un formulaire "test.html" vide exécute les opérations, la referme derrière, la recrée etc.
Donc forcement vu qu'il va directement taper dans le champ du formulaire pour IP/Nom de station il risque pas de garder la valeur.
Il faut donc déclarer une variable chaîne de caractères dans laquelle tu mettras l'info que tu veux garder et la réutiliser à chaque fois.
Pour ça tu rajoutes un
Code :
|
au début de ton vbs.
Au dessus de
Code :
|
Tu ajoutes un
Code :
|
et en dessous du
Code :
|
tu mets un truc qui doit ressembler à :
Code :
|
(Parce que j'imagine que tu veux garder les infos pour éviter de retaper toute une adresse IP alors que tu veux changer seulement un ou deux chiffres à la fin.)
Mais bon vu que tu essayes de faire une appli de broadcast je pense que le mieux serait de mettre les IPs de tes machines cibles dans un tableau.
Marsh Posté le 17-09-2009 à 11:29:37
Merci pour ta réponse. Mais me met une erreur des la déclaration de la valeur: Dim strInfos as string
as string ca corespond a kel type de variable?
Quand j'enleve le "as string"
Il me met une erreur a la ligne ou j'ai ajouté
oIE.Document.TestForm.IP.value = strInfos
Marsh Posté le 17-09-2009 à 12:28:37
Merci pour ta réponse. Mais me met une erreur des la déclaration de la valeur: Dim strInfos as string
as string ca correspond a kel type de variable?
Quand j'enleve le "as string"
Il me met une autre erreur a la ligne ou j'ai ajouté
oIE.Document.TestForm.IP.value = strInfos
Marsh Posté le 17-09-2009 à 12:44:38
Ca marque en erreur "cette objet ne gere pas cette propriété ou cette méthode: "Document.testform"
dans la boucle "Do While true"
il doit pas gerer cette variable??
Marsh Posté le 20-09-2009 à 17:33:44
sinon j'ai trouvé fallais mettre le:
oIE.Document.TestForm.IP.value = strInfos
apres:
WScript.Sleep 200
Marsh Posté le 27-08-2009 à 20:35:46
bonjour,
Presque totalement débutant dans le VBS et html. J'ai commencé un bout de code pour envoyé des messages sur un reseau, utilisant l'utilitaire psexec de microsoft et le code commenté sur ce site modifié de MR Bellamy.
http://jc.bellamy.free.fr/fr/vbsavance.html
L'envoie des messages fonctionne nikel a condition que sur tous les poste il y ait le meme compte avec meme mot de passe mais ca je vais l'améliorer.
d'autre fonction sont a prévoir.
Mon probleme:
Je voudrais que la variable concernant le champs "IP/NOM DE STATION" ne s'efface pas apres l'envoie d'un premier message.
Voici mon code:
Le fichier: TEST.VBS
' ----------------------------------------------------------
' Script de test d'utilisation de formulaire
' à l'aide de Internet Explorer
'
' JC BELLAMY © 2001
' ----------------------------------------------------------
Dim shell, oIE
Set objShell = Wscript.CreateObject("Wscript.Shell" )
Set shell = WScript.CreateObject("Shell.Application" )
Set shell = WScript.CreateObject("WScript.Shell" )
Do While true
' Ouverture d'Internet Explorer
Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_" )
oIE.Left = 50
oIE.Top = 100
oIE.Height = 550
oIE.Width = 550
oIE.MenuBar = 0
oIE.ToolBar = 0
oIE.StatusBar = 0
oIE.navigate GetPath() & "test.html"
oIE.Visible = 2
Do While (oIE.Busy)
WScript.Sleep 200
Loop
shell.AppActivate "Test de formulaire avec IE"
' Attente d'action sur le bouton ou fermeture de la fenêtre
On Error Resume Next
Do
WScript.Sleep 100
Loop While (oIE.Document.Script.CheckVal() = 0)
' Si on ferme directement IE sans passer par un bouton,
' cela provoque une erreur qui est détectée et alors
' on quitte le script
If Err <> 0 Then
Wscript.Echo "On a fermé IE directement"
Wscript.quit
end if
test=oIE.Document.Script.CheckVal()
If test=-1 Then
CloseIE
Wscript.Echo "On a appuyé sur Annuler"
Wscript.quit
end if
Choix2=oIE.Document.TestForm.autre.value
Wscript.Echo "Envoie de votre message en cours... " & test & VBCRLF & VBCRLF _
& "IP/Nom de station : " & oIE.Document.TestForm.IP.value & VBCRLF _
& "Texte : " & oIE.Document.TestForm.texte.value & VBCRLF _
& "Mot de passe : " & oIE.Document.TestForm.pwd.value
objShell.Run "PSExec \\"& oIE.Document.TestForm.IP.value &" -s -c RunAsLoggedOnUser.exe -wait -cmd ""msg.exe {username} "& oIE.Document.TestForm.texte.value &""""
CloseIE
loop
'------------------------------------------------------------
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, "\" ))
End Function
'------------------------------------------------------------
' Fermeture d'Internet Explorer
Sub CloseIE
oIE.Quit
Set oIE = Nothing
End Sub
'------------------------------------------------------------
Le fichier test.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Test de formulaire avec IE</TITLE>
<link rel="stylesheet" type="text/css" href="../../jcb.css">
</HEAD>
<body bgcolor="#FFFFD2" scroll="no">
<script language="VBScript">
<!--
Dim ready, index
' Action sur les boutons
Sub B0_OnClick
ready=-1
End Sub
Sub B1_OnClick
ready=1
End Sub
Sub B2_OnClick
ready=2
End Sub
' Initialisation
Sub Window_OnLoad()
ready=0
End Sub
' Fonction utilisable de l'extérieur pour tester l'envoi
Public Function CheckVal()
CheckVal=ready
End function
'-->
</script>
<form name="TestForm">
<h3><center>TITI MESSENGER</center></h3><hr>
IP/Nom de station : <input type="text" size="10" name="IP"><br>
<hr>
Taper votre message :<br>
<textarea cols="40" rows="5" name="texte"></textarea><hr>
Admin : <input type="text" size="10" name="autre"><br>
Mot de passe : <input type="password" size="10" name="pwd"><hr>
<hr>
<hr>
Envoyer un fichier : <input type="file" size="60" name="fichier"><hr>
<hr>
<input type="button" value="Envoyer" name="B1">
<input type="button" value="Envoyer un fichier" name="B2">
</form>
</body>
</html>
On trouve psexec ici:
http://technet.microsoft.com/fr-fr [...] 97553.aspx
Donc si kelkun peu me guidé .
Merci
Vincent