すべてのユーザーのためのWindowsオペレーティングシステムをゲット

まず、簡単な知識

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(NULL02アウトの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)。
    } 

    戻りユーザー。
}

 

 

おすすめ

転載: www.cnblogs.com/yokeqi/p/11890535.html