05-10-12, 12:12 AM
جرب مايلي محتمل تنفع:
Public Class Test
Public Shared Function IsInDomain() As Boolean
Dim status As Win32.NetJoinStatus = Win32.NetJoinStatus.NetSetupUnknownStatus
Dim pDomain As IntPtr = IntPtr.Zero
Dim result As Integer = Win32.NetGetJoinInformation(Nothing, pDomain, status)
If pDomain <> IntPtr.Zero Then
NetApiBufferFree(pDomain)
End If
If result = Win32.ErrorSuccess Then
If status = Win32.NetJoinStatus.NetSetupDomainName Then
Return True
Else
Return False
End If
Else
Throw New Exception("Domain Info Get Failed")
End If
End Function
End Class
Friend Class Win32
Public Const ErrorSuccess As Integer = 0
<DllImport("Netapi32.dll", CharSet := CharSet.Unicode, SetLastError := True)> _
Public Shared Function NetGetJoinInformation(server As String, domain As IntPtr, status As NetJoinStatus) As Integer
End Function
<DllImport("Netapi32.dll")> _
Public Shared Function NetApiBufferFree(Buffer As IntPtr) As Integer
End Function
Public Enum NetJoinStatus
NetSetupUnknownStatus = 0
NetSetupUnjoined
NetSetupWorkgroupName
NetSetupDomainName
End Enum
End Class
Public Shared Function IsInDomain() As Boolean
Dim status As Win32.NetJoinStatus = Win32.NetJoinStatus.NetSetupUnknownStatus
Dim pDomain As IntPtr = IntPtr.Zero
Dim result As Integer = Win32.NetGetJoinInformation(Nothing, pDomain, status)
If pDomain <> IntPtr.Zero Then
NetApiBufferFree(pDomain)
End If
If result = Win32.ErrorSuccess Then
If status = Win32.NetJoinStatus.NetSetupDomainName Then
Return True
Else
Return False
End If
Else
Throw New Exception("Domain Info Get Failed")
End If
End Function
End Class
Friend Class Win32
Public Const ErrorSuccess As Integer = 0
<DllImport("Netapi32.dll", CharSet := CharSet.Unicode, SetLastError := True)> _
Public Shared Function NetGetJoinInformation(server As String, domain As IntPtr, status As NetJoinStatus) As Integer
End Function
<DllImport("Netapi32.dll")> _
Public Shared Function NetApiBufferFree(Buffer As IntPtr) As Integer
End Function
Public Enum NetJoinStatus
NetSetupUnknownStatus = 0
NetSetupUnjoined
NetSetupWorkgroupName
NetSetupDomainName
End Enum
End Class
