garder la valeur d'un champs VBS vers html - VB/VBA/VBS - Programmation
MarshPosté le 27-08-2009 à 20:33:11
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.
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.
' 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>
Marsh Posté le 27-08-2009 à 20:33:11
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