Page 1 sur 1
[R] Afficher le nom du groupe de travail de l'ordinateur
Posté : sam. 18 avr. 2015 07:05
par gaelds
Bonjour,
Tout est dans le titre, j'aimerais afficher le workgroup de l'ordinateur ou le nom de domaine s'il est membre du domaine.
merci pour votre aide
Re: [..] Afficher le nom du groupe de travail de l'ordinateu
Posté : sam. 18 avr. 2015 07:53
par jguinch
J'ai trouvé ça dans mes archives, je ne sais plus d'où vient ce code :
► Afficher le texte
Code : Tout sélectionner
Local $aNetGetJoinInformation = _WinAPI_NetGetJoinInformation()
Local $sMemberOf
If NOT @error Then
Switch $aNetGetJoinInformation[1]
Case 0
$sMemberOf = "status inconnu"
Case 1
$sMemberOf = "non join"
Case 2
$sMemberOf = "groupe de travail"
Case 3
$sMemberOf = "domaine"
EndSwitch
MsgBox(0, "NetGetJoinInformation", "This computer is member of " & $aNetGetJoinInformation[0] & " (" & $sMemberOf & ")")
EndIf
Func _WinAPI_NetGetJoinInformation($sComputerName = Null)
Local $aRet = DllCall("Netapi32.dll", "int", "NetGetJoinInformation", "wstr", $sComputerName, "ptr*", "", "int*", 0)
If @error Then Return SetError(@error, 0, 0)
Local $pNameBuffer = $aRet[2]
Local $tName = DllStructCreate("wchar[" & _BufferSize($pNameBuffer) &"]", $pNameBuffer)
Local $sName = DllStructGetData($tName, 1)
DllCall("netapi32.dll", "int", "NetApiBufferFree", "ptr", $pNameBuffer)
Local $aReturn[2] = [ $sName, Int($aRet[3]) ]
Return $aReturn
EndFunc
Func _BufferSize($pBuffer)
Local $aResult = DllCall("Netapi32.dll", "int", "NetApiBufferSize", "ptr", $pBuffer, "dword*", 0)
If @error OR $aResult[0] <> 0 Then Return SetError(@error, @extended, 0)
Return $aResult[2]
EndFunc
Sinon, j'avais fais ce truc qui te donnera que le status :
http://www.autoitscript.fr/forum/viewto ... 947#p75924
Re: [..] Afficher le nom du groupe de travail de l'ordinateu
Posté : sam. 18 avr. 2015 19:19
par jl56
Bonjour,
Cette Macro Reference fonctionne bien
A+
JL56
Re: [..] Afficher le nom du groupe de travail de l'ordinateu
Posté : dim. 19 avr. 2015 19:20
par gaelds
jl56 a écrit :Bonjour,
Cette Macro Reference fonctionne bien
A+
JL56
Désolé cette macro me renvoie le nom de mon PC, pas "Workgroup" qui est mon groupe de travail.
Re: [..] Afficher le nom du groupe de travail de l'ordinateu
Posté : dim. 19 avr. 2015 19:33
par gaelds
jguinch a écrit :J'ai trouvé ça dans mes archives, je ne sais plus d'où vient ce code :
► Afficher le texte
Code : Tout sélectionner
Local $aNetGetJoinInformation = _WinAPI_NetGetJoinInformation()
Local $sMemberOf
If NOT @error Then
Switch $aNetGetJoinInformation[1]
Case 0
$sMemberOf = "status inconnu"
Case 1
$sMemberOf = "non join"
Case 2
$sMemberOf = "groupe de travail"
Case 3
$sMemberOf = "domaine"
EndSwitch
MsgBox(0, "NetGetJoinInformation", "This computer is member of " & $aNetGetJoinInformation[0] & " (" & $sMemberOf & ")")
EndIf
Func _WinAPI_NetGetJoinInformation($sComputerName = Null)
Local $aRet = DllCall("Netapi32.dll", "int", "NetGetJoinInformation", "wstr", $sComputerName, "ptr*", "", "int*", 0)
If @error Then Return SetError(@error, 0, 0)
Local $pNameBuffer = $aRet[2]
Local $tName = DllStructCreate("wchar[" & _BufferSize($pNameBuffer) &"]", $pNameBuffer)
Local $sName = DllStructGetData($tName, 1)
DllCall("netapi32.dll", "int", "NetApiBufferFree", "ptr", $pNameBuffer)
Local $aReturn[2] = [ $sName, Int($aRet[3]) ]
Return $aReturn
EndFunc
Func _BufferSize($pBuffer)
Local $aResult = DllCall("Netapi32.dll", "int", "NetApiBufferSize", "ptr", $pBuffer, "dword*", 0)
If @error OR $aResult[0] <> 0 Then Return SetError(@error, @extended, 0)
Return $aResult[2]
EndFunc
Sinon, j'avais fais ce truc qui te donnera que le status :
http://www.autoitscript.fr/forum/viewto ... 947#p75924
Merci ça fonctionne nickel !
Re: [..] Afficher le nom du groupe de travail de l'ordinateu
Posté : dim. 19 avr. 2015 21:44
par jguinch
Si le problème est résolu, merci de passer le sujet en [R] en éditant le premier message.