J'ai besoin de tester si un serveur est connecté au réseau à partir d'un PC sous windows x64 (c'est imposé). Il me semble que le plus simple est de faire un ping sur une adresse donnée. Je me suis très (très) largement inspiré du code publié par Bernard pour tester un processus https://forum.openoffice.org/fr/forum/v ... 2&p=266837. Le code ci-dessous fonctionne (Libre Office ne plante pas), mais...
Code : Tout sélectionner
Sub TestServeur
Dim sComputer As String, sServerAdress As String
sComputer = "."
sServerAdress = "192.168.1.1"
' sServerAdress = "10.10.10.10"
' sServerAdress = "www.google.fr"
Select Case isServerResponde(sComputer, sServerAdress)
Case True
Msgbox "Un ping sur " & sServerAdress & " a réussi"
Case False
Msgbox "Un ping sur " & sServerAdress & " est en échec"
Case Else
Msgbox "Erreur incohérente"
End Select
End Sub
Function isServerResponde(BYVAL strComputer As String, BYVAL sServerAdress As String) As Boolean
DIM objWMIService As Variant, strWMIQuery As String
Dim sc As Variant, prog As String, blabla As String
sc = CreateObject("ScriptControl")
sc.language = "VBScript"
blabla = "winmgmts:" _
& "{impersonationLevel=impersonate}!\\"_
& strComputer & "\root\cimv2"
prog = "SET objWMIService = GETOBJECT(""" & blabla & """)"
sc.ExecuteStatement(prog)
objWMIService = sc.eval("objWMIService")
strWMIQuery = "Select * from Win32_PingStatus where address = '" & sServerAdress & "'"
isServerResponde = (objWMIService.ExecQuery(strWMIQuery).Count > 0)
End Function
Je sais bien que ma question n'est pas dans l'épure des sujets "OpenOffice", car c'est plus du portage de VBA/VBS vers Ooffice, mais si quelqu'un avait un commencement de début de piste, ça m'arrangerait bien.
Un grand merci par avance