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
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
Il test le type de Windows et autre.
Voila je souhaiterais que le code en rouge ne soit pas exécuter sous xp
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous n'avez pas poster tout le code
vous pouvez l'adapter comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
ç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?)
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.
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
Quelque chose comme ça :
Et surtout n'oublies pas si tu réussis à résoudre votre problème ,alors pensez à partager votre script final
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Bonne Chance
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager