- 題名: ワークグループ名の取得
- 日時: 2009/09/11 13:15:43
- ID: 25383
- この記事の返信元:
- (なし)
- この記事への返信:
- [25385] Re[1]: ワークグループ名の取得2009/09/11 15:29:31
- ツリーを表示
■No25383に返信(hirosさんの記事)
> 自分の所属しているワークグループ名を取得したいです
《案1》
Imports System.Management
Module Module1
Sub Main()
Dim s = "SELECT PartOfDomain, Domain FROM Win32_ComputerSystem"
For Each q In New ManagementObjectSearcher(s).Get()
If CBool(q("PartOfDomain")) Then
MsgBox(q("Domain"), vbSystemModal, "domain")
Else
MsgBox(q("Domain"), vbSystemModal, "workgroup")
End If
Next
End Sub
End Module
《案2》
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Module Module1
Private Enum NETSETUP_JOIN_STATUS
Unknown = 0
Unjoined = 1
Workgroup = 2
Domain = 3
End Enum
Private Declare Unicode Function NetGetJoinInformation Lib "netapi32" ( _
ByVal computerName As String, _
ByRef buffer As IntPtr, _
ByRef status As NETSETUP_JOIN_STATUS) As Integer
Private Declare Function NetApiBufferFree Lib "netapi32" ( _
ByRef buffer As IntPtr) As Integer
Sub Main()
Dim pBuffer As IntPtr = IntPtr.Zero
Dim domainName As String = Nothing
Dim status As NETSETUP_JOIN_STATUS = NETSETUP_JOIN_STATUS.Unknown
Try
Dim nerr As Integer = NetGetJoinInformation(Nothing, pBuffer, status)
If nerr <> 0 Then
Throw New Win32Exception()
End If
domainName = Marshal.PtrToStringUni(pBuffer)
Finally
If Not IntPtr.Zero.Equals(pBuffer) Then
NetApiBufferFree(pBuffer)
pBuffer = IntPtr.Zero
End If
End Try
'MsgBox(status.ToString() & vbCrLf & domainName, vbSystemModal)
If status = NETSETUP_JOIN_STATUS.Workgroup Then
MsgBox(domainName, vbSystemModal, "Workgroup")
Else
MsgBox(domainName, vbSystemModal, "Domain")
End If
End Sub
End Module
分類:[.NET]
自分の所属しているワークグループ名を取得したいです
ネットでいろいろ調べましたがよくわかりません
ドメイン名ではないです
どなたかお願いします