论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2091阅读
  • 1回复

[绿色软件]ISO文件生成工具(ISOMaker) V1.0.3绿色中文版 [复制链接]

上一主题 下一主题
离线vs007
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-05-21 07:44:41

上次写了个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;
点击进入下载页面: nisomk.zip (272 K) 下载次数:7
软件下载咨询邮箱: sdbeta@qq.com (回复及时)
 
离线makese

发帖
169
今日发帖
最后登录
2021-12-10
只看该作者 沙发  发表于: 2012-05-26 11:38:17


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