110,539
社区成员
发帖
与我相关
我的任务
分享
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct USER_INFO_502
{
public string ComputerName;
public string Username;
public int Num_FileOpens;
public int S_time;
public int FreeTime;
public int userFlags;
public string CTName;
public string UserTransportName;
}
[DllImport("netapi32.dll", SetLastError = true)]
public static extern int NetSessionEnum(
[In, MarshalAs(UnmanagedType.LPWStr)] string ServerName,
[In, MarshalAs(UnmanagedType.LPWStr)] string UncClientName,
[In, MarshalAs(UnmanagedType.LPWStr)] string UserName,
int Level,
out IntPtr bufptr,
int prefmaxlen,
ref int entriesread,
ref int totalentries,
ref int resume_handle);
private void GetServerMacUserInfo(string ServerName)
{
int EntriesRead=0;
int TotalEntries=0;
int handle = 0;
IntPtr bufPtr;
try
{
richTextBox1.Text = "";
Win32API.NetSessionEnum(ServerName, null, null, 502, out bufPtr,200, ref EntriesRead, ref TotalEntries, ref handle);
//Win32API.NetSessionEnum();
if (EntriesRead > 0)
{
Win32API.USER_INFO_502[] Users = new Win32API.USER_INFO_502[EntriesRead];
IntPtr iter = bufPtr;
for (int i = 0; i < EntriesRead; i++)
{
Users[i] = (Win32API.USER_INFO_502)Marshal.PtrToStructure(iter,typeof(Win32API.USER_INFO_502));
iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(Win32API.USER_INFO_502)));
richTextBox1.Text Users[i].Username +Users[i].ComputerName +Users[i].CTName+Users[i].FreeTime.ToString()+Users[i].Num_FileOpens.ToString()+Users[i].S_time.ToString()+Users[i].userFlags.ToString()+Users[i].UserTransportName+ "\r\n";
}
//Win32API.NetApiBufferFree(bufPtr);
}
}
catch (Exception ee) { MessageBox.Show(ee.Message); }
}
[DllImport("Netapi32.dll",ExactSpelling = true, CharSet = CharSet.Ansi)]
public extern static long NetSessionEnum()
[DllImport("Win32.dll")]
public static extern uint aaa();//aaa为方法名