procedure TForm1_main.btn_flashClick(Sender: TObject);
var
Hdev: THandle;
devNum:Char;
// GetHardwardIDs
ShowText: string;
buf: array [0 .. 511] of Byte;
ReadCount, i: Cardinal;
phyDrvNum: Integer;
Drive:string; temp:Byte;
tebl:Boolean;
tttt:Cardinal;
jjjj:Cardinal;begin
if cbb1.Items.Count = 0 then
begin
MessageBox(Handle, '没有检测到U盘,请插入U盘后重试!', '错误', MB_OK + MB_ICONSTOP);
exit;
end;
devNum := cbb1.Items[cbb1.ItemIndex][1];
phyDrvNum := GetHardwardIDs(devNum);
// ShowMessage(Format('\\.\PhysicalDrive%d', [phyDrvNum]));
Drive := Format('\\.\PhysicalDrive%d', [phyDrvNum]);
Hdev := CreateFile(Pchar(Drive), GENERIC_ALL,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if Hdev = INVALID_HANDLE_VALUE then
begin
MessageBox(Handle, '打开磁盘失败!', '错误', MB_OK + MB_ICONSTOP);
exit; end;
// 读出引导扇区数据
if ReadFile(Hdev, buf, 512, ReadCount, nil) then
begin for i := Low(buf) to High(buf) do
begin
ShowText := ShowText + ByteToHex(buf[i]) + ' ';
end;
end;
tttt :=4; //MessageBox(GetDesktopWindow, PChar(ShowText), '引导扇区', MB_OK);
temp := $89; //EB p := AllocMem(1);
p[0]:='9';
try
FileSeek(Hdev,0,0);
tebl := WriteFile(Hdev,p[0],tttt,jjjj,nil);
finally
end; CloseHandle(Hdev);end;读取(u盘)磁盘扇区能读取出来,请问下为什么写入返回Flase,请帮帮手,谢谢。
var
Hdev: THandle;
devNum:Char;
// GetHardwardIDs
ShowText: string;
buf: array [0 .. 511] of Byte;
ReadCount, i: Cardinal;
phyDrvNum: Integer;
Drive:string; temp:Byte;
tebl:Boolean;
tttt:Cardinal;
jjjj:Cardinal;begin
if cbb1.Items.Count = 0 then
begin
MessageBox(Handle, '没有检测到U盘,请插入U盘后重试!', '错误', MB_OK + MB_ICONSTOP);
exit;
end;
devNum := cbb1.Items[cbb1.ItemIndex][1];
phyDrvNum := GetHardwardIDs(devNum);
// ShowMessage(Format('\\.\PhysicalDrive%d', [phyDrvNum]));
Drive := Format('\\.\PhysicalDrive%d', [phyDrvNum]);
Hdev := CreateFile(Pchar(Drive), GENERIC_ALL,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if Hdev = INVALID_HANDLE_VALUE then
begin
MessageBox(Handle, '打开磁盘失败!', '错误', MB_OK + MB_ICONSTOP);
exit; end;
// 读出引导扇区数据
if ReadFile(Hdev, buf, 512, ReadCount, nil) then
begin for i := Low(buf) to High(buf) do
begin
ShowText := ShowText + ByteToHex(buf[i]) + ' ';
end;
end;
tttt :=4; //MessageBox(GetDesktopWindow, PChar(ShowText), '引导扇区', MB_OK);
temp := $89; //EB p := AllocMem(1);
p[0]:='9';
try
FileSeek(Hdev,0,0);
tebl := WriteFile(Hdev,p[0],tttt,jjjj,nil);
finally
end; CloseHandle(Hdev);end;读取(u盘)磁盘扇区能读取出来,请问下为什么写入返回Flase,请帮帮手,谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货