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); } }
TextBox1.ReadOnly=true; int i=GetIdx(); //取得当前最大的序号 i=i+1; string istr="0000"+i.ToString(); istr=istr.subString(istr.Length-5,5); TextBox1.Text="PD-"+DateTime.Today.ToString("yyyy-MM-dd")+"-"+istr;怎么取最大序号那就看你的存储位置和存储方法了
你可以使用GuidtxtBox1.Text = System.Guid.NewGuid().ToString("D");
TextBox1.ReadOnly=true;
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);
}
}
int i=GetIdx(); //取得当前最大的序号
i=i+1;
string istr="0000"+i.ToString();
istr=istr.subString(istr.Length-5,5);
TextBox1.Text="PD-"+DateTime.Today.ToString("yyyy-MM-dd")+"-"+istr;怎么取最大序号那就看你的存储位置和存储方法了
改成: richTextBox1.AppendText(Users[i].Username + "\r\n");
richTextBox1
就是文本框的名称,你换成自己程序里那个文本框的名称不就行了???
{
TextBox1.Text = "PD- + DateTime.Now.ToString("yyyy-MM-dd") + "-" +String.Format("{0:00000}",GetSerialNO());
}private int GetSerialNO()
{
return ++serialNO;
}private int serialNO;这是竹子师兄的解答,不错,在此谢谢他