如题
解决方案 »
- 这种格式的cookie,如何转为CookieContainer格式
- 关于http下载问题(新手)
- Gridview 显示不出图片?求救
- 我往textbox中添加数据库中读取的数据出错了!高手给指导一下
- 如何通过控件来选择文件
- 讨论,三层结构设计
- 请问谁有 Google Web APIs Developer's Kit?
- 基类和派生类的转换问题
- 做网络通信比较关心的问题,怎么用程序来进行路由,就是怎么通过Internet进行两个局域网客户端的通信,进者有分,UP有分,给思路更有分!
- 问下怎么做截获网络数据包,然后能分析啊?????????????????????
- 使用Graphcis类时出现了问题
- mschart的rowlable标签如何纵向显示
ObjectQuery objectQuery = new ObjectQuery("select * from Win32_Share");//share object ManagementObjectSearcher searcher =new ManagementObjectSearcher(objectQuery);
txtMsg.Text="";
PropertyDataCollection pdc;
foreach (ManagementObject share in searcher.Get())
{
pdc=share.Properties;
txtMsg.Text+="======================================"+"\r\n";
txtMsg.Text+=share.Path+"\r\n";
foreach(PropertyData pd in pdc)
{
txtMsg.Text+=pd.Name+"="+pd.Value+"\r\n";
}
}
protected struct SHARE_INFO_1
{
[MarshalAs(UnmanagedType.LPWStr)] public string shi1_netname;
[MarshalAs(UnmanagedType.U4)] public uint shi1_type;
[MarshalAs(UnmanagedType.LPWStr)] public string shi1_re;
} //98没有这个函数?
[DllImport("Netapi32.dll", EntryPoint="NetShareEnum")]
protected static extern int NetShareEnum(
[MarshalAs(UnmanagedType.LPWStr)] string servername,
[MarshalAs(UnmanagedType.U4)] uint level,
out IntPtr bufptr,
[MarshalAs(UnmanagedType.U4)] int prefmaxlen,
[MarshalAs(UnmanagedType.U4)] out uint entriesread,
[MarshalAs(UnmanagedType.U4)] out uint totalentries,
[MarshalAs(UnmanagedType.U4)] out uint resume_handle
);
private string[] NetShareEnum(string server)
{
IntPtr buffer;
uint entriesread;
uint totalentries;
uint resume_handle;//-1应该是获取所有的share,msdn里面的例子是这么写的,返回0表示成功
if(NetShareEnum(server,1,out buffer,-1,out entriesread,out totalentries,out resume_handle)==0)
{
Int32 ptr = buffer.ToInt32();
ArrayList alShare=new ArrayList();
for (int i=0; i<entriesread; i++)
{
SHARE_INFO_1 shareInfo = (SHARE_INFO_1)Marshal.PtrToStructure(new IntPtr(ptr), typeof(SHARE_INFO_1));
if(shareInfo.shi1_type==0)//Disk drive类型
{
alShare.Add(shareInfo.shi1_netname);
}
ptr += Marshal.SizeOf(shareInfo);//有点类似C代码
}
string[] share=new string[alShare.Count];
for(int i=0;i<alShare.Count;i++)
{
share[i]=alShare[i].ToString();
}
return share;
}
else
return null;
}