Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/02/2013, 10h22   #1
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Par défaut vbscript:exécuter une ligne dans un systeme d'exploitation précis?

Bonjour

En vbscript comment faire pour que juste une ligne ne soit exécuter que sur seven par exemple?

Il y a pas un genre de conditions comme dans le langage C ou autre..?

Merci
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 10h50   #2
JML19
Expert Confirmé Sénior
 
Avatar de JML19
 
Homme Jean Michel
Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Inscription : décembre 2010
Messages : 5 476
Détails du profil
Informations personnelles :
Nom : Homme Jean Michel
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Secteur : Transports

Informations forums :
Inscription : décembre 2010
Messages : 5 476
Points : 8 905
Points : 8 905
Bonjour

Regarde (ICI) un test matériel et logiciel en VBS
JML19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 10h55   #3
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Citation:
Envoyé par JML19 Voir le message
Merci de ton aide..

Je comprends pas ce script..

Il fait quoi exactement?
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 10h56   #4
JML19
Expert Confirmé Sénior
 
Avatar de JML19
 
Homme Jean Michel
Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Inscription : décembre 2010
Messages : 5 476
Détails du profil
Informations personnelles :
Nom : Homme Jean Michel
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Secteur : Transports

Informations forums :
Inscription : décembre 2010
Messages : 5 476
Points : 8 905
Points : 8 905
Il test le type de Windows et autre.
JML19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 11h23   #5
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 629
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 629
Points : 3 689
Points : 3 689
Citation:
Envoyé par Sun2k Voir le message
En vbscript comment faire pour que juste une ligne ne soit exécuter que sur seven par exemple

postez votre code et soyez plus explicite
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 11h54   #6
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Citation:
Envoyé par hackoofr Voir le message

postez votre code et soyez plus explicite
Voila je souhaiterais que le code en rouge ne soit pas exécuter sous xp

Voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else

 Set wshell = CreateObject("WScript.Shell")
wshell.Run "sc create Monprogram binPath= ""C:\dossier\Monprogram.exe /service""  DisplayName= Monprogram start= auto", 0, true 

Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
Set objApplication = CreateObject("HNetCfg.FwAuthorizedApplication")
objApplication.Name = "Monprogram"
objApplication.IPVersion = 2
objApplication.ProcessImageFileName = "C:\dossier\Monprogram.exe"
objApplication.RemoteAddresses = "*"
objApplication.Scope = 0
objApplication.Enabled = True
Set colApplications = objPolicy.AuthorizedApplications
colApplications.Add(objApplication)

End If
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 12h15   #7
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 629
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 629
Points : 3 689
Points : 3 689

Version du Système d'exploitation
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 13h15   #8
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Citation:
Envoyé par hackoofr Voir le message
Merci..

As tu une idée pour adapter ces script au mien?

J' ai fais plusieurs essai sans succès..
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 13h57   #9
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 629
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 629
Points : 3 689
Points : 3 689

Vous n'avez pas poster tout le code
vous pouvez l'adapter comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
If FindOSType(".") = "Windows XP" Then 
MsgBox "Exécution avec Windows XP",64,"Système d'exploitation"
'votre code pour Windows XP
Else
MsgBox "Exécution avec Windows Seven ou bien Vista",64,"Système 
d'exploitation"
'Votre code pour les autres systèmes
end if
 
Function FindOSType(strComputer)
'Defining Variables
    Dim objWMI, objItem, colItems
    Dim OSVersion, OSName, ProductType
 
'Get the WMI object and query results
    Set objWMI = GetObject("winmgmts://" & strComputer & "/root/cimv2")
    Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem",,48)
 
'Get the OS version number (first two) and OS product type (server or desktop) 
    For Each objItem in colItems
        OSVersion = Left(objItem.Version,3)
        ProductType = objItem.ProductType
    Next
'Time to convert numbers into names
    Select Case OSVersion
    Case "6.1"
        OSName = "Windows 7"
    Case "6.0" 
        OSName = "Windows Vista"
    Case "5.2" 
        OSName = "Windows 2003"
    Case "5.1" 
        OSName = "Windows XP"
    Case "5.0" 
        OSName = "Windows 2000"
    Case "4.0" 
        OSName = "Windows NT 4.0"
    Case Else
        OSName = "Windows 9x"
    End Select
 
'Return the OS name
    FindOSType = OSName
 
'Clear the memory
    Set colItems = Nothing
    Set objWMI = Nothing
End Function
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 14h51   #10
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
ça fonctionne parfaitement merci beaucoup..

Oui effectivement j'ai pas mis le code entièrement.. c'était pour être plus compréhensible..

Juste une question pour dormir moins con

Pourquoi l'affichage de la MsgBox ainsi que les conditions se trouve en début de code et non dernier? (dans la logique c'est a la fin non?)
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2013, 15h35   #11
Daynvheur
Nouveau Membre du Club
 
Technicien Help Desk
Inscription : décembre 2012
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk

Informations forums :
Inscription : décembre 2012
Messages : 23
Points : 29
Points : 29
Car dans le code, il y a un test si [Résultat de fonction] = WindowsXP then / else / finsi, et que la MsgBox est exécutée après cela.
La fonction elle-même en VBScript peut être déclarée n'importe-où dans le code, l'interpréteur de commandes s'en débrouille.
Donc, pour des raisons de lisibilité/simplicité, le code exécuté (équivalent à une fonction imaginaire "main()") est placé en haut de page, suivi des déclarations de fonctions.
Daynvheur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 13h39   #12
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Merci Daynvheur

hackoofr :Comment faire pour FindOSType(".") soit = a Windows XP et Windows 2003 ?

car le code du else sera executer si FindOSType(".") = aussi a Windows 2003 ou Windows 2000 ou Windows NT 4.0 ou Windows 9x
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 14h30   #13
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 629
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 629
Points : 3 689
Points : 3 689

Quelque chose comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
If FindOSType(".") = "Windows XP"  or FindOSType(".") = "Windows 2003"_
or FindOSType(".") = "Windows 2000" or FindOSType(".") = "Windows NT 4.0" or FindOSType(".") = "Windows NT 4.0" Then 
MsgBox "Exécution avec Windows XP ou bien Windows 2003 ou bien Windows 2000 ou bien Windows NT 4.0 Windows 9x",64,"Système d'exploitation"
Else
MsgBox "Exécution avec Windows Seven ou bien Vista",64,"Système d'exploitation"
end if
 
Function FindOSType(strComputer)
'Defining Variables
Dim objWMI, objItem, colItems
Dim OSVersion, OSName, ProductType
 
'Get the WMI object and query results
Set objWMI = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem",,48)
 
'Get the OS version number (first two) and OS product type (server or desktop) 
For Each objItem in colItems
    OSVersion = Left(objItem.Version,3)
    ProductType = objItem.ProductType
Next
'Time to convert numbers into names
Select Case OSVersion
Case "6.1"
    OSName = "Windows 7"
Case "6.0" 
    OSName = "Windows Vista"
Case "5.2" 
    OSName = "Windows 2003"
Case "5.1" 
    OSName = "Windows XP"
Case "5.0" 
    OSName = "Windows 2000"
Case "4.0" 
    OSName = "Windows NT 4.0"
Case Else
    OSName = "Windows 9x"
End Select
 
'Return the OS name
FindOSType = OSName
 
'Clear the memory
Set colItems = Nothing
Set objWMI = Nothing
End Function
Et surtout n'oublies pas si tu réussis à résoudre votre problème ,alors pensez à partager votre script final
Bonne Chance
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 12h05   #14
Sun2k
Invité de passage
 
Inscription : janvier 2013
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 19
Points : 1
Points : 1
Citation:
Envoyé par hackoofr Voir le message

Et surtout n'oublies pas si tu réussis à résoudre votre problème ,alors pensez à partager votre script final
Bonne Chance
Merci

Mais dans le code complet il y a juste 2 truc a ajouter..

C'est copie de dossier vers program files (de toi )

et démarrer le service après l'avoir créer..
Sun2k est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h15.


 
 
 
 
Partenaires

Hébergement Web