问题:
    如何用Dephi获取我所需要的U盘盘符?
    做了一个类似U3的系统: 把一个U盘,分为一个CDROM和一个可移动磁盘。CDROM里面的exe程序需要调用这个可移动磁盘里面的文件。
    但是当我的电脑上存在多个可移动磁盘时,不知道哪个是我所需要的那个。
   
    以前做过一个根据序列号来判断U盘的程序,后来发现每次用软件分盘的时候,重新写CDROM,可移动磁盘的序列号也跟着变。 
 
    新手,刚接触Dephi几天,请高人多多指教!
    

解决方案 »

  1.   

    procedure Tform1.GetChange(var mmsg:Tmessage);
    begin
         if mmsg.WParam=32768 then showmessage('插入');
         if mmsg.WParam=32772 then showmessage('弹出');
    end; reg.rootkey:=HKEY_LOCAL_MACHINE;
    reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Enum\USbstor') ;
        mystrings:=TSTRINglist.Create;
        reg.getkeynames(mystrings);
      

  2.   

    CDROM里面的exe遍历所有移动磁盘,直接找到目标调用文件
      

  3.   

    那就继续深化一下MD5验证只要你U盘里面那个程序不变就行了
      

  4.   

    最近在研究U3的工作原理,因为它也是已经打包好的exe文件。所以一直没办法弄清楚。
    但觉得它是在 我们插入U盘的时候,就获取U盘的盘符! 
    就好像在WINDOWS下面插入一个U盘时,会自动弹出一个如“可移动磁盘(I)”这样的播放窗口一样!
    不知道dephi有没有这样的接口,在我们插入U盘的同时获取盘符! 
      

  5.   

    这个……U盘插入的时候倒是有个WM_DeviceChange的消息应该可以通过这个获得盘符
      

  6.   

      找了半天还是没有找到答案!  再次求救 !
      我以前是搞Java的,感觉Dephi的WinAPI有点乱!
      所以还请dephi的高人指点!