CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

如何读取磁盘驱动信息,在线等!!!!

楼主zyxmeng(Joyous)2005-08-24 14:50:55 在 Delphi / Windows SDK/API 提问

我机器上有两个固定的硬盘,一个移动硬盘,一个U盘,我想读取他们的信息,  
  这些信息就是计算机“设备管理器”中树型结构“磁盘驱动器”下的信息  
  如  
  ST380011A(是固定硬盘的)  
  ST380011B(是固定硬盘的)  
  IBM-DJSA   -210   USB   Device(移动硬盘)  
  AMEGA   BLACK_BOX_   F1/F1   USB   Device(U盘)  
   
  我已经通过读注册表把“固定磁盘”的信息读取出来了,还有“光盘信息(含虚拟光盘)”也通过读注册表信息,但是USB口上的移动性磁盘没有读取出来,小弟想破头了,还是没有法子读,也不知道到哪里去取数据,还有上面已经读取来得数据,不知诸位还有其它法子读取,给小弟提个醒吧,谢谢!  
   
  问题点数:50、回复次数:7Top

1 楼konhon(优华)回复于 2005-08-24 14:56:32 得分 10

可以试试GetDriverType这个函数。主要功能是指定一个盘符,返回这个盘符是软盘、可移  
  动盘、硬盘、光盘等信息,具体如何使用请看帮助    
  Top

2 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2005-08-24 14:57:42 得分 20

DevicoIOControl获取驱动器信息  
  再有SetUpAPI来获取系统设备  
   
  足够了  
   
  _____________________  
  http://lysoft.7u7.netTop

3 楼konhon(优华)回复于 2005-08-24 14:57:49 得分 0

要多寫一循環,   從'A'--'Z',   循環所有盤符Top

4 楼hqhhh(枫叶)回复于 2005-08-24 14:58:27 得分 20

好的,给你提个醒,  
  转贴,请参考:  
   
  type  
      MIDPtr   =   ^MIDRec;  
      MIDRec   =   Record  
          InfoLevel:   word;  
          SerialNum:   LongInt;  
          VolLabel:   Packed   Array   [0..10]   of   Char;  
          FileSysType:   Packed   Array   [0..7]   of   Char;  
      end;  
   
  function   GetDriveSerialNum(MID:   MIDPtr;   drive:   Word):   Boolean;   assembler;  
  asm  
      push     DS         {   Just   for   safety,   I   dont   think   its   really   needed   }  
      mov       ax,440Dh   {   Function   Get   Media   ID   }  
      mov       bx,drive         {   drive   no   (0-Default,   1-A   ...)   }    
      mov       cx,0866h     {   category   and   minor   code   }  
      lds       dx,MID             {   Load   pointeraddr.   }    
      call     DOS3Call       {   Supposed   to   be   faster   than   INT   21H   }    
      jc         @@err    
      mov       al,1                       {   No   carry   so   return   TRUE   }    
      jmp       @@ok  
    @@err:  
      mov       al,0                       {   Carry   set   so   return   FALSE   }  
    @@ok:  
      pop       DS                         {   Restore   DS,   were   not   supposed   to   change   it   }  
  end;  
   
  procedure   TForm1.NrBtnClick(Sender:   TObject);  
  var  
      Info:   MIDRec;  
  begin  
      Info.InfoLevel:=0;   {   Information   Level   }  
      If   GetDriveSerialNum(@Info,0)   then     {   Do   something   with   it...   }  
          ListBox.Items.Add(IntToStr(Info.SerialNum)+'   '+Info.VolLabel);  
  end;  
  Top

5 楼zyxmeng(Joyous)回复于 2005-08-24 15:03:20 得分 0

GetDriverType这个API我知道啊!并不能取得移动磁盘的信息。  
  此函数我试过了,移动硬盘的盘符用此函数读出来的是“固定磁盘驱动器”Top

6 楼zyxmeng(Joyous)回复于 2005-08-24 15:05:49 得分 0

to     ly_liuyang(Liu   Yang)    
  阁下能否说得明白一些啊!Top

7 楼zyxmeng(Joyous)回复于 2005-08-24 15:06:55 得分 0

to     konhon(优华)  
  我要得到是磁盘驱动器整块的标识,不是要分区的标识!Top

相关问题

  • LINUX磁盘驱动程序
  • 怎样读取磁盘.dat文件
  • C语言能不能直接调用磁盘驱动,按块访问磁盘?
  • SQL Server的SQL语句能否读取磁盘文件?
  • 如何读取磁盘文件名及文件目录?
  • 求助关于读取磁盘大小的问题!!
  • 我是个初学者有个磁盘读取的问题
  • 如何从磁盘上读取256色位图文件?
  • 怎样从数据库中读取文件写到磁盘上?
  • 怎样读取磁盘的大小及可用空间????

关键词

  • 硬盘
  • 函数
  • 信息
  • 移动
  • usb
  • 磁盘
  • 读取
  • 驱动器
  • 固定
  • 光盘

得分解答快速导航

  • 帖主:zyxmeng
  • konhon
  • ly_liuyang
  • hqhhh

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo