社区
Windows SDK/API
帖子详情
DELPHI下如何读取磁盘扇区???
zz791224
2004-05-05 11:51:40
在DELPHI下如何读取磁盘扇区?求高手解释一下,最好有一个例子,谢谢了???
...全文
138
2
打赏
收藏
DELPHI下如何读取磁盘扇区???
在DELPHI下如何读取磁盘扇区?求高手解释一下,最好有一个例子,谢谢了???
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ly_liuyang
2004-05-06
打赏
举报
回复
NT/2000/XP下通过DeviceIOControl的API可以实现
以VC版的最多见,Delphi的少见,但都可以的
pankun
2004-05-06
打赏
举报
回复
参考如下文章。
了解实模式编程的朋友都知道,可以利用BIOS的INT 13中断来进行磁盘的绝对读写,但在NT环境下,却不能使用INT 13中断来直接读写硬盘.在这里,我们可以利用CreateFile并将路径名设为"\\.\X:"来打开逻辑盘,并进行读写.在进里X为盘符.
CreateFile函数原型如下:
HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
lpFileName: 要打开的文件的名字
dwDesiredAccess: 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息.
dwShareMode: 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问
lpSecurityAttributes: 指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性
dwCreationDistribution: 建立方式
dwFlagsAndAttributes: 其它属性
hTemplateFile: 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性
下面的例子在Windows XP下编译通过, 其实现的功能为读取C盘的引导扇区,并将读出的数据显示出来.
program ReadDisk;
uses
SysUtils,
Windows;
var
Buf: array [0..511] of Byte; //数据缓冲区
ShowText, TmpStr: string;
FileHandle: THandle;
ReadCount, i: Cardinal;
begin
//打开磁盘
FileHandle := CreateFile('\\.\C:', GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, OPEN_EXISTING, 0, 0);
if FileHandle = INVALID_HANDLE_VALUE then
begin
MessageBox(GetDesktopWindow, '打开磁盘失败', 'ERROR', MB_OK);
ExitProcess(0);
end;
//读出引导扇区数据
if ReadFile(FileHandle, Buf, 512, ReadCount, nil) then
begin
SetLength(ShowText, Length(Buf) * 3);
//将数据转为字串
for i := Low(Buf) to High(Buf) do
begin
TmpStr := Format('%2.2x ', [Buf[i]]);
CopyMemory(@ShowText[i*3+1], @TmpStr[1], 3);
end;
end;
MessageBox(GetDesktopWindow, PChar(ShowText), '引导扇区', MB_OK);
CloseHandle(FileHandle);
ExitProcess(0);
end.
DELPHI
示范如何读写硬盘物理
扇区
示范如何读写硬盘物理
扇区
,读写.
DELPHI
意天原始
磁盘
数据操作开发包(
磁盘
扇区
读写组件)
意天原始
磁盘
数据操作开发包(
磁盘
扇区
读写 组件)是意天软件推出的一款
磁盘
扇区
读写 操作底层开发包,主要用于开发人员操作
磁盘
数据, 其包括一个com组件和一个
磁盘
驱动 文件,通过该组件VB;CB;
Delphi
开发人员可以很方便的进行
磁盘
扇区
读写 操作,以完成读写(按
扇区
模式或字节模式)底层
磁盘
数据 工作,该组件完全解决VISTA下Win32API无法直接写
磁盘
数据 的问题,用该开发包在VISTA下也可以进行
磁盘
扇区
读写 操作,而且其
磁盘
扇区
读写 的接口与win2k xp 2003是一样的.该开发包采用驱动直接读写
磁盘
数据,因此绕过了Win32平台内部权限 检测机制,以使在VISTA下直接写硬盘数据成为现实,同时也使得
磁盘
扇区
读写 的速度更快,自主性更强.如果你的软件需要利用
磁盘
扇区
读写 功能,那么该组件是你最佳的选择,因为它可以让你的软件在几分钟之内拥有强大的驱动级的
磁盘
扇区
读写 功能!(注:不可用该开发包来实现恶意软件,否则后果自负!)
Delphi
获取当前
磁盘
信息和
磁盘
空间信息
Delphi
10.3获取当前
磁盘
、
磁盘
空间、
扇区
字节等信息;仅供初学者交流学习
Delphi
获取详细的电脑
磁盘
信息.rar
Delphi
获取详细的电脑
磁盘
信息,以C盘为例,将显示C盘的如下信息: 根目录:C:\ 每簇的
扇区
数:8 每个
扇区
的字节数:512 剩余簇数:8139313 总的簇数:15728895 剩余空间:31.049015045166G 总空间:60.0009727478027G 相关编程代码为: procedure TForm1.Button1Click(Sender: TObject); var path,p : String; S,B,F,T : DWord; VS,VB,VF,VT,M : variant; begin memo1.Clear; path := Trim(Edit1.Text); if path<>'' then begin GetDiskFreeSpace(Pchar(path),S,B,F,T); memo1.Lines.Add('根目录:' path '\'); memo1.Lines.Add('每簇的
扇区
数:' IntToStr(S)); memo1.Lines.Add('每个
扇区
的字节数:' IntToStr(B)); memo1.Lines.Add('剩余簇数:' IntToStr(F)); memo1.Lines.Add('总的簇数:' IntToStr(T)); VS:=S; VB:=B; VF:=F; VT:=T; M := VS*VB*VF; p := M/(1024*1024*1024); memo1.Lines.Add('剩余空间:' p 'G'); M := VS*VB*VT; p := M/(1024*1024*1024); memo1.Lines.Add('总空间:' p 'G'); end else Edit1.Text := 'C:'; end;
Delphi
实现获取
磁盘
空间大小的方法
主要介绍了
Delphi
实现获取
磁盘
空间大小的方法,是一个很实用的功能,需要的朋友可以参考下
Windows SDK/API
1,183
社区成员
22,328
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章