我现在想得到a盘和usb接口上的u盘或者是移动硬盘的ITEMIDLIST,请问哪为高手知道怎么得到?或者直接把一个usb接口上的u盘或者是移动硬盘转换成IDropTarget类型也可以~~~谢谢各位~~~

解决方案 »

  1.   

    您可以通过查询WMI对象来获取驱动器类型。下面是一段例子代码: SelectQuery query=new SelectQuery("Select * From Win32_LogicalDisk");
     ManagementObjectSearcher searcher=new ManagementObjectSearcher(query); foreach(ManagementBaseObject disk in searcher.Get())
     {
      this.textBox1.Text+="\r\n"+disk["Name"]+" "+disk["DriveType"];
     }这段代码在我的计算机上的执行结果如下:C: 3
    D: 5
    E: 2
    Q: 4
    R: 4
    S: 4
    T: 4
    U: 4
    V: 4
    W: 4
    X: 4
    Y: 4其中各个数字代表的意义如下:1 No type 
    2 Floppy disk 
    3 Hard disk 
    4 Removable drive or network drive 
    5 CD-ROM 
    6 RAM disk 这样就可以得知各个驱动器的类型,例如C:是本地硬盘,D:是CD-ROM(实际上是一个DVD/CD-R Combo),而从Q:往后都是网络硬盘。
      

  2.   

    呵呵,发现自己确实进步了,看到这个问题知道可以使用WMI,本来想进来现一下的发现有高手在,呵呵,学习。
      

  3.   

    这个方法我用过啊~~~`但是itemidlist得不到,我本来用pdesktop.ParseDisplayName(IntPtr.Zero,IntPtr.Zero,"h:\\",0,out pidl,ref pdwAttributes);(注:h:是u盘)但是在后面的psf.GetUIObjectOf(IntPtr.Zero,1,pidlarray,SendToClass.ShellGUIDs.IID_IDropTarget,ref iref,out ipdt);这个函数时出错了。输入的参数是ParseDisplayName得到的itmeidlist返回的却是空值,我郁闷ing~~~~~~~~~`
      

  4.   

    To: bitsbird(一瓢 闭关)U盘会被认成本地硬盘(3)