delphi如何读优盘
解决方案 »
- 在Delphi中利用线程--解决程序没有计算完之前不能做其它任何事情
- 求救“Asphyre eXtreme v3.10 组件包”安装
- 兄弟们关于四舍五入的怪异问题!请高手指点
- treeview的滚动条颜色怎么改呀?谢谢
- 请教:在Delphi6中如何调用AdoConnection的Build Connection String的数据链接属性对话框?
- 运行Delphi 8时出现的错误(initialize the Borland Database Engine)该怎么办哦?
- idTcpServer组件的CommandHandle之命令事件中如何写ADOQuery的代码,急!!!
- 功能强大的餐饮管理系统
- 菜鸟问题:线程死掉了,如何知道并让它再次运行?
- 关于BDE的问题?
- 怎么将文本文件读入到数据库中,满意例子给出立刻加分!
- 关于Tdbcomcobox的傻瓜问题,在线等待!!!
Lbl_DriveType:Tlabel;
DriveType:WORD; //定义驱动器类型变量
DriveType:=GetDriveType(RootPathName); //获得RootPathName所对应的磁盘驱动器信息
case DriveType of
DRIVE_REMOVABLE:Lbl_DriveType.Caption:= '软盘驱动器';
DRIVE_FIXED : Lbl_DriveType.Caption:= '硬盘驱动器';
DRIVE_REMOTE: Lbl_DriveType.Caption:= '网络驱动器';
DRIVE_CDROM: Lbl_DriveType.Caption:= '光盘驱动器';
DRIVE_RAMDISK: Lbl_DriveType.Caption:= '内存虚拟盘';
end; //将该磁盘信息显示在Lbl_DriveType中
二、Win2k以上操作系统读写磁盘主要是通过
CreateFile,ReadFile,WriteFile,CloseHandle,SetFilePointer几个函数。
把磁盘设备当作文件打开进行读写。
例如
h:=CreateFile('\\.\C:',GENERIC_READ,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
就是打开逻辑盘C.
h:=CreateFile('\\.\PHYSICALDRIVE0',GENERIC_READ,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
就是读第一块物理硬盘(可以操作分区表的呦).
拦截这几个API就可以监视NT,2k,XP的磁盘操作。
Win9X中是通过VXD的DeviceIoControl函数来读写磁盘设备的。好像麻烦一些。
h:=CreateFile('\\\\.\\VWIN32',0,0,0,0,FILE_FLAG_DELETE_ON_CLOSE,0);
通过虚拟中断来读写。
我还没想好如何监视Win9X的磁盘操作