garder la valeur d'un champs VBS vers html

garder la valeur d'un champs VBS vers html - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 27-08-2009 à 20:35:46   

Reply

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 :
  1. Dim strInfos as string


au début de ton vbs.  
 
Au dessus de  

Code :
  1. Wscript.Echo "Envoie de votre message en cours... " & test & VBCRLF & VBCRLF _
  2. & "IP/Nom de station : " & oIE.Document.TestForm.IP.value & VBCRLF _
  3. & "Texte : " & oIE.Document.TestForm.texte.value & VBCRLF _
  4. & "Mot de passe : " & oIE.Document.TestForm.pwd.value


 
Tu ajoutes un  
 

Code :
  1. strInfos = oIE.Document.TestForm.IP.value


 
et en dessous du  

Code :
  1. oIE.Visible = 2

 
 
tu mets un truc qui doit ressembler à :

Code :
  1. oIE.Document.TestForm.IP.value = strInfos


 
(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.

Reply

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

Reply

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

Reply

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??

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed