Accueil > Forum > > > > Communication entre plusieurs scripts
Communication entre plusieurs scripts
lundi 9 juin 2008 à 13:13:09 |
Communication entre plusieurs scripts

Celestus
|
Voici le problème, et je ne trouve pas la réponse sur le net...
J'ai un script qui, à sa fermeture, a besoin d'envoyer un signal à un autre script pour que ce second script réagisse lorsque le premier se termine.
J'ai essayé avec ERRORLEVEL et WScript.quit 1 => Ca ne marche pas
J'ai essayé avec l'objet Err => Ca ne marche pas
J'ai essayé avec des prétendues variables globales
Public ma_variable => Ca ne marche pas
Public static ma_variable => Ca ne marche pas (erreur de syntaxe)
Public ma_variable static => Ca ne marche pas (erreur de syntaxe)
J'ai toujours la solution de créer un fichier bidon dans les tmp et de vérifier son existence, mais c'est bâtard comme solution.
Quelqu'un sait-il comment inscrire une variable en ram capable de perdurer dans que wscript.exe est actif, et même au-delà ?
|
|
lundi 9 juin 2008 à 14:41:49 |
Re : Communication entre plusieurs scripts

us_30
|
Bonjour, Je dirais, qu'il faut que le premier script, lance le second avant de quitter... c'est plus simple... en passant une variable dans l'appel d'une sub... Un truc comme : Sub machin(Variables() as string) ... A priori, dès tu quitte un script toutes ses variables sont détruites... Amicalement, Us.
|
|
lundi 9 juin 2008 à 16:24:47 |
Re : Communication entre plusieurs scripts

Celestus
|
J'y ai pensé.
Le problème, c'est que le second script qui se lance est en fait le premier qui se lance selon runas.exe
Donc si je quitte comme ça, le second quittera aussi.
PS : La notation dim/sub/public/private variable [as machin]
n'admet pas [as machin] en VBS.
l'attribution du type de variable est automatique en VBS.
|
|
lundi 9 juin 2008 à 23:05:28 |
Re : Communication entre plusieurs scripts

JMO
|
 Bonsoir, Utilisez le registre pourrait être une solution, genre WshShell.RegWrite "HKLM\SOFTWARE\" & strCompany & "\xx\yyyyy\"_ & "LastEmail",Date, "REG_SZ" et strMykey = WSHShell.RegRead("HKLM\SOFTWARE\" & strCompany & "\xx\yyyyy\") Ceci permet de communiquer (top/flag). jean-marc
|
|
lundi 9 juin 2008 à 23:18:52 |
Re : Communication entre plusieurs scripts

Celestus
|
Pas con du tout ça...
Vraiment pas con du tout.
C'est même une idée tellement bonne qu'on va dire que c'est moi qui l'ai eueu OK ? ^^
|
|
mardi 10 juin 2008 à 12:25:50 |
Re : Communication entre plusieurs scripts

Celestus
|
Réponse acceptée !
BUG DE WBScript :
En fait, la solution du registre ne fonctionne pas.
Pour une raison que j'ignore, wscript garde en mémoire les paramètres du 1er script ce qui empêche le second de fonctionner correctement : Tout doit être fait en double.
=> Le script écrit une clé dans la base des registres, puis le relance via runas
=> Le second script NE DETECTE PAS la clé, puis la réécrit, puis se relance via runas
=> Le troisième script DETECTE la clé, il NE L'EFFACE PAS puis continu
=> La prochaine fois, la clé sera encore là et runas ne se lancera pas
SEULE SOLUTION :
On écrit un fichier temporaire qui relancera le script via runas.exe
Ce fichier sera un nouveau fichier, donc les paramètres seront réinitialisés, et le fichier sera relancé correctement.
Code :
_____________________________________________________
file_full_name = objet_shell.currentdirectory & "\runas launcher.vbs"
If objet_systeme_de_fichier.FileExists(file_full_name)=TRUE Then ' Si le fichier existe déjà
objet_systeme_de_fichier.DeleteFile file_full_name, TRUE ' On le détruit
Else ' S'il n'existe pas
If version_NT>=5.1 And Nom_du_compte_administrateur<>"" And Mot_de_passe_du_compte_administrateur<>"" Then
' Si >= XP (runas n'existe qu'à partir d'XP), Si un nom de compte et un mot de passe ont été écrit (Pas de mot de passe vide)
' If >= XP (runas exists only since XP) , If a name of account and a password have been written (No empty password)
Tableau=Split(Nom_du_compte_administrateur, " ") ' Pas d'espace dans le nom du compte No space in the name of account
If UBound(Tableau)>=1 Then
msgbox "Les espaces dans le nom du compte ne sont pas supportés." & vbCRLF _
& "Ce script va donc s'arrêter.",vbcritical,"Espaces non supportés"
Wscript.quit 0
End If
Set objet_fichier = objet_systeme_de_fichier.CreateTextFile(file_full_name,TRUE) ' On le créé dans le même dossier
Set objet_fichier = objet_systeme_de_fichier.GetFile(file_full_name) ' et on le met en fichier caché
If objet_fichier.attributes xor 2 Then
objet_fichier.attributes = objet_fichier.attributes + 2
End If
Set objet_fichier = objet_systeme_de_fichier.OpenTextFile(file_full_name,8,TRUE) ' Ensuite on écrit dedans la séquence de lancement de runas.exe (On peut utiliser "" pour forcer à écrire ")
objet_fichier.writeline "Set objet_shell = WScript.CreateObject(""WScript.Shell"")"
objet_fichier.writeline "program_full_name = objet_shell.ExpandEnvironmentStrings(""%WinDir%"") & ""\system32\runas.exe"""
objet_fichier.writeline "program_arguments = ""/noprofile /env /user:"" & objet_shell.ExpandEnvironmentStrings(""%USERDOMAIN%"") & ""\" _
& Nom_du_compte_administrateur & """ & chr(32) & chr(34) & objet_shell.ExpandEnvironmentStrings(""%WinDir%"") & ""\system32\wscript.exe"" & "" \"" & chr(34) & """ _
& WScript.ScriptFullName & """ & ""\"" & chr(34) & chr(34)"
objet_fichier.writeline "objet_shell.Run program_full_name & chr(32) & program_arguments, 2, FALSE" ' On lance Runas.exe, en taille réduite au premier plan, sans attendre sa fermeture pour continuer
objet_fichier.writeline "objet_shell.AppActivate program_full_name" ' On active la fenêtre comme si on cliquait dessus pour taper le mot de passe
objet_fichier.writeline "WScript.Sleep 150" ' On attend 150 millisecondes
objet_fichier.writeline "objet_shell.SendKeys" & chr(32) & chr(34) & Mot_de_passe_du_compte_administrateur & chr(34) & chr(32) & "& ""~""" ' On entre le mot de passe suivit du caractère de validation
objet_fichier.close
objet_shell.Run objet_shell.ExpandEnvironmentStrings("%WinDir%") _
& "\system32\wscript.exe" & chr(32) & chr(34) & file_full_name & chr(34), 2, FALSE ' Puis on lance le fichier temporaire
wscript.quit 0 ' Et on quitte
End If
End If
_________________________________________________
[Applaudissements]
|
|
Cette discussion est classée dans : script, public, variable, marche, essayé
Répondre à ce message
Sujets en rapport avec ce message
Probleme avec Variable Public dans module [ par jcharles ]
J'ai déclaré dans mon module cette variable:Public fichier As Stringavec le debogueur fichier="c:\appli1\dico1.ini"jusque la pas de problemeQuand j'ou
Script qui marche en VBS mais pas en HTM [ par SuperClic ]
J' enregistre sous format HTML le script suivant:msgbox "a"set fso=createobject("Scripting.FileSystemObject")Set WshShell = WScript.Createobject("WScr
perte de variable public en vb.net [ par novicevb ]
J'utilise des variables publique pour les reprendre dans un autre foremulaire ert je je pers la valeur de cette variable et je la pers dans les autres
perte de valeur public dans un module [ par novicevb ]
je fais un module pour garder ma variable public d'un autre formulaire et je perd la valeur de la variable publique du formulaire que j'ai besoin, il
Modifier une variable JavaScript avec VB [ par NeoEsteban ]
Salut tout le mondeJ'utilise actuellement l'objet WebBrowser pour afficher une page avec un script JavaScript et j'aimerai, par l'intermédiaire de VB,
session et frameset [ par azeryu ]
Je rencontre des problemes avec mes sessions: je dois mettre "accepter tous les cookies" dans les propriétés d'explorer pour que la session marche dan
Aide sur WshShell [ par Spr ]
Salut, quelqu'un peut-il m'aider : Mon prog marche très bien sous XP, mais dès que je passe sous 98, mes commandes Wshshell ne marche plus 'erreur d'e
getchunk comment ca marche??? [ par pcpunch ]
ci dessous mon code pour faire un telechargement avec inet et une progresse bar.il marche si je donne manuellement la taille du fichier a telecharger,
Passer une variable a un script PHP [ par Overcro ]
Hello tous le monde ;o)Je cherche déséspérement un moyen d'échanger des données courtes (comme un mot,une phrase) entre mon prog VB et mon site qui hé
If Form = Nothing Then, ca marche pas !!! [ par phtribaudeau ]
Bonjour, voici une question technique : Je déclare une variable suivante : Dim F As FormEt je souhaite savoir plus loin dans mon code si cette va
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|