Il faut créer un fichier VBS contenant ceci :
----8<------8<------8<------8<------8<------8<--
' *** Script start ***
Set oShell = CreateObject("WScript.Shell")
oShell.Run "toto.bat", 0, True
----8<------8<------8<------8<------8<------8<--
Cela permet d'exécuter toto.bat sans fenêtre de commande DOS.Option Explicit
Sub DeleteRegKeyAndSubKeys(strRegTree, strKeyPath)
'strRegTree = "HKEY_CLASSES_ROOT"
' "HKEY_CURRENT_USER"
' "HKEY_LOCAL_MACHINE"
' "HKEY_USERS"
' "HKEY_CURRENT_CONFIG"
'strKeyPath is the registry key to delete. Example :
' "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySoftware"
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Dim hTree, strComputer, oReg, arrSubKeys, strSubKey
Select Case strRegTree
Case "HKEY_CLASSES_ROOT" hTree = HKEY_CLASSES_ROOT
Case "HKEY_CURRENT_USER" hTree = HKEY_CURRENT_USER
Case "HKEY_LOCAL_MACHINE" hTree = HKEY_LOCAL_MACHINE
Case "HKEY_USERS" hTree = HKEY_USERS
Case "HKEY_CURRENT_CONFIG" hTree = HKEY_CURRENT_CONFIG
End Select
strComputer = "."
Set oReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
oReg.EnumKey hTree, strKeyPath, arrSubKeys
If IsArray(arrSubKeys) Then
For Each strSubKey In arrSubKeys
DeleteRegKeyAndSubKeys strRegTree, strKeyPath & "\" & strSubKey
Next
End If
oReg.DeleteKey hTree, strKeyPath
End Sub
'DeleteRegKeyAndSubKeys "HKEY_LOCAL_MACHINE", "SOFTWARE\Classes\Installer\Products\B1E406903FD90804C9B350FA2EF723D4\"Option Explicit Function FirstVersionSupOrEqualToSecondVersion(strFirstVersion, strSecondVersion) Dim arrFirstVersion, arrSecondVersion, i, iStop, iMax Dim iFirstArraySize, iSecondArraySize Dim blnArraySameSize : blnArraySameSize = False If strFirstVersion = strSecondVersion Then FirstVersionSupOrEqualToSecondVersion = True Exit Function End If If strFirstVersion = "" Then FirstVersionSupOrEqualToSecondVersion = False Exit Function End If If strSecondVersion = "" Then FirstVersionSupOrEqualToSecondVersion = True Exit Function End If arrFirstVersion = Split(strFirstVersion, "." ) arrSecondVersion = Split(strSecondVersion, "." ) iFirstArraySize = UBound(arrFirstVersion) iSecondArraySize = UBound(arrSecondVersion) If iFirstArraySize = iSecondArraySize Then blnArraySameSize = True iStop = iFirstArraySize For i=0 To iStop If CInt(arrFirstVersion(i)) < CInt(arrSecondVersion(i)) Then FirstVersionSupOrEqualToSecondVersion = False Exit Function End If Next FirstVersionSupOrEqualToSecondVersion = True Else If iFirstArraySize > iSecondArraySize Then iStop = iSecondArraySize Else iStop = iFirstArraySize End If For i=0 To iStop If CInt(arrFirstVersion(i)) < CInt(arrSecondVersion(i)) Then FirstVersionSupOrEqualToSecondVersion = False Exit Function End If Next If iFirstArraySize > iSecondArraySize Then FirstVersionSupOrEqualToSecondVersion = True Exit Function Else For i=iStop+1 To iSecondArraySize If CInt(arrSecondVersion(i)) > 0 Then FirstVersionSupOrEqualToSecondVersion = False Exit Function End If Next FirstVersionSupOrEqualToSecondVersion = True End If End If End Function Dim strFirstVers : strFirstVers = "1.1.0.1.0." Dim strSecondVers : strSecondVers = "1.1.0.1.0" If FirstVersionSupOrEqualToSecondVersion(strFirstVers,strSecondVers) Then MsgBox strFirstVers & " >= " & strSecondVers Else MsgBox strFirstVers & " < " & strSecondVers End If
Function KillProcess(strProcessName)
Dim oProcess
KillProcess = False
For Each oProcess in GetObject("winmgmts:").InstancesOf("Win32_Process")
If InStr(UCase(strProcessName), UCase(oProcess.Name)) <> 0 Then
oProcess.Terminate()
KillProcess = True
Exit Function
End If
Next
End Function
MsgBox KillProcess("Notepad.exe")Function ServiceStarted(strServiceName)
Dim objWMI
On Error Resume Next
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
If Err <> 0 Then
WScript.Echo "Erreur WMI. Description de l'erreur : " & Err.Description
On Error GoTo 0
ServiceStarted = False
Exit Function
End If
On Error GoTo 0
Dim colServiceList
Set colServiceList = objWMI.ExecQuery _
("Select * from Win32_Service where Name = '"& strServiceName &"'")
Dim objService
If (colServiceList.Count = 0) Then
WScript.Echo "Le service """ & strServiceName & """ est introuvable !"
ServiceStarted = False
Exit Function
Else
For Each objService in colServiceList
If objService.State = "Running" Then
WScript.Echo "Le service """ & strServiceName & """ est démarré"
ServiceStarted = True
Exit Function
Else
WScript.Echo "Le service """ & strServiceName & """ n'est pas démarré"
ServiceStarted = True
Exit Function
End If
Next
End If
End Function
ServiceStarted "Computer browser"Option Explicit
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Function FolderEmpty(strFolderPathName)
Dim oFiles, oFile, oFolder, oSubFolders, oSubFolder
Dim blnFileFound : blnFileFound = False
Set oFolder = oFS.GetFolder(strFolderPathName)
Set oFiles = oFolder.Files
If oFiles.Count > 0 Then
FolderEmpty = False
Exit Function
End If
Set oSubFolders = oFolder.SubFolders
For Each oSubFolder In oSubFolders
If Not FolderEmpty(oSubFolder.Path) Then
FolderEmpty = False
Exit Function
End If
Next
FolderEmpty = True
End Function
Dim strFolderPathName : strFolderPathName = "D:\Tests\Test"
If FolderEmpty(strFolderPathName) Then
MsgBox "Le répertoire " & strFolderPathName & " est vide."
Else
MsgBox "Le répertoire " & strFolderPathName & " contient un ou plusieurs fichiers."
End IfFirst / Previous / Next / Last / Page 1 of 1 (6 posteets)