まず、簡単な知識
1.使用WINDOWSAPI GET
[DLLIMPORT(" NETAPI32.DLL " )] のextern 静的 INT NetUserEnum([MarshalAs(UnmanagedType.LPWStr)] 列サーバー名、int型のレベル、int型フィルタ、アウトのIntPtr BUFPTR、INT prefmaxlen、アウト int型 entriesread、アウト int型 totalentries、アウト INT resume_handle ); [DLLIMPORT(" NETAPI32.DLL " )] のextern 静的 INTのNetApiBufferFree(のIntPtr緩衝液);
これは、コンピュータの管理から取られるべきである - > [システムツール] - > [ローカルユーザーとグループ - >ユーザー
第二に、具体的な例
1.上記APIインタフェースの導入
2.へのパッケージング方法
[StructLayout(LayoutKind.Sequential、項目CharSet = CharSet.Unicode)] パブリック 構造体USER_INFO_0 { パブリック 文字列ユーザー名; } パブリック 静的リスト< ストリング > GetSysUserNames() { リスト < ストリング >ユーザー= 新しいリスト< ストリング > (); NetUserEnum(NULL、0、2、アウトのIntPtr BUFPTR、 - 1、アウト INT entriesRead、アウト int型 totalEntries、アウト int型の)履歴書; もし(entriesRead> 0 ) { のIntPtr ITER = BUFPTR。 以下のために(INT iが= 0 ; I <entriesRead; I ++ ) { VARのユーザー=(USER_INFO_0)Marshal.PtrToStructure(ITER、typeof演算(USER_INFO_0))。 ITER =(のIntPtr)((INT)ITER + Marshal.SizeOf(typeof演算(USER_INFO_0)))。 users.Add(user.Username)。 } のNetApiBufferFree(BUFPTR)。 } 戻りユーザー。 }