1 20 50 150 500
欢迎来到瑞博软件站,找素材,搜软件,就上瑞博软件站!
当前位置 >首页 >软件下载 >电脑软件 >系统软件 >光盘工具

ISO文件生成工具(ISOMaker) V1.0.3绿色中文版

软件信息
  • 分类:光盘工具
  • 大小:270KB
  • 语言: 中文
  • 环境: WinXP, WinAll
  • 更新:2024-07-01
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / 光盘工具
  • 插件情况:
  • 相关链接: http://www.cr173.com

上次写了个CD/DVD -> ISO 的工具,不过似乎有点小问题,重写了一个修正版。

2008-01-14
[*] 修正了时间显示部分
[*] 修正了版本显示部分
[*] 提高了数据写入速度
[+] 增加了写入速率显示
[+] 加入在线版本检查功能

2007-4-25

[*] 修改版本号为1.0,并使用"主.年.月.日"格式
[+] 添加刷新按钮,用来刷新驱动器列表
[+] 用不同的图标区分DVD和CD,且有光盘和无光盘时也不同
TODO:
某些系统下不会自动刷新驱动器列表

核心代码
procedure TISOMaker.Build(Drive: Char; FileName: string; BufferSize: DWORD);
var
  hDrive, hFile: THandle;
  Buffer: array of Byte;
  Readed: Cardinal;
  Count,
  Total: Int64;
begin
  hFile := CreateFile(PChar(FileName), GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, 0, 0);
  if hFile = INVALID_HANDLE_VALUE then
    raise Exception.CreateFmt('创建文件 %s: 失败', [FileName]);

   hDrive := CreateFile(PChar('\.' + Drive + ':'), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
  if hDrive = INVALID_HANDLE_VALUE then
  begin
    CloseHandle(hFile);
    raise Exception.CreateFmt('打开驱动器 %s: 失败', [Drive]);
  end;

  FDrive := Drive;
  FAborted := False;
  try
    Count := 0;
    Total := GetDriveSize(Drive);
    GetMem(Buffer, BufferSize);

    while not FAborted and ReadFile(hDrive, Buffer[0], BufferSize, Readed, nil) and (Readed > 0) do
    begin
      Inc(Count, Readed);
      DoProgress(Count, Total);
      WriteFile(hFile, Buffer[0], Readed, Readed, nil);
    end;
  finally
    CloseHandle(hFile);
    CloseHandle(hDrive);
    FreeMem(Buffer, BufferSize);

    DoProgress(0, 0);
    FDrive := #0;
  end;
end;

下载地址

热门软件

Top