给你个读的例子,写的没敢试验,因为我只有一个HD.[
]<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var hFile:THandle ;<br> bytesread
WORD;<br> buf: array[0..511] of char ;<br> Security: TSecurityAttributes;<br><br>begin<br><br> hFile:=CreateFile('//./PhysicalDrive0',GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil ,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);<br> if hFile=INVALID_HANDLE_VALUE then<br> begin<br> ShowMessage('No file exists yet.' );<br> Exit;<br> end;<br> if not ReadFile(hFile, buf, sizeof(buf), bytesread, nil) then showmessage('Error');<br><br>end;<br> 在WINNT和WIN2000中磁盘被看做一种标准设备,可以使用CreateFile象打开文件一样打开并存取。CreateFile支持两种方式的磁盘设备--逻辑磁盘(格式为"//./C:")和物理磁盘(格式为"//./PHYSICALDRIVEx",其中x为数字),例如打开A:盘进行读取操作,只要这样:<br> HANDLE hDev=CreateFile("////.//A:",GENERIC_READ,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);<br>如果得到的句柄有效,就可以使用ReadFile来读取了,<br> ReadFile(hDev,Buffer,512,&dwRet,0);<br>读取结束要关闭该句柄,<br> CloseHandle(hDev);