如何读取磁盘驱动信息,在线等!!!!
我机器上有两个固定的硬盘,一个移动硬盘,一个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




