如题~!

解决方案 »

  1.   

    using System.Runtime.InteropServices;[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct USER_INFO_0
    {
        public string Username;
    } [DllImport("Netapi32.dll")]
    extern static int NetUserEnum(
        [MarshalAs(UnmanagedType.LPWStr)] 
        string servername,
        int level,
        int filter,
        out IntPtr bufptr,
        int prefmaxlen,
        out int entriesread,
        out int totalentries,
        out int resume_handle);[DllImport("Netapi32.dll")]
    extern static int NetApiBufferFree(IntPtr Buffer); private void button1_Click(object sender, EventArgs e)
    {
        int EntriesRead;
        int TotalEntries;
        int Resume;
        IntPtr bufPtr;    NetUserEnum(null, 0, 2, out bufPtr, -1, out EntriesRead, 
            out TotalEntries, out Resume);
        if (EntriesRead > 0)
        {
            USER_INFO_0[] Users = new USER_INFO_0[EntriesRead];
            IntPtr iter = bufPtr;
            for (int i = 0; i < EntriesRead; i++)
            {
                Users[i] = (USER_INFO_0)Marshal.PtrToStructure(iter, 
                    typeof(USER_INFO_0));
                iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(USER_INFO_0)));
                textBox1.AppendText(Users[i].Username + "\r\n");
            }
            NetApiBufferFree(bufPtr);
        }
    }