请教:如何 无用户交互 完成格式化U盘动作?

碧螺春的马甲 2010-07-28 05:01:25
如何 调用系统 的格式化U盘功能?

SHFormatDrive , system(format) 两种方法都需要 用户输入做交互,无法静默完成。

IOCTL_DISK_FORMAT_TRACKS 为 floppy 的

其他近年还有没有 新的 方法突破?
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧螺春的马甲 2010-08-02
  • 打赏
  • 举报
回复
SendMessage 的方法,找到 格式化磁盘 对话框后,怎么给他发消息?

我发 BM_CLICK / KEYDOWN ... 没反应。

求助星星们 ...
cnzdgs 2010-07-29
  • 打赏
  • 举报
回复
低级格式化是将磁道划分为扇区,之后才能向扇区中写入数据;高级格式化是建立文件系统,之后可以向磁盘写入文件。
“找 16MB 空 FS Image,直接写下去,不管是多大的 capacity”,这样“格式化”出来的文件系统大小是16MB,如果容量大于16MB,多余的容量无法用来储存文件;如果容量小于16MB,储存文件时如果文件系统分配的空间超出了实际容量,则会失败。
碧螺春的马甲 2010-07-29
  • 打赏
  • 举报
回复
总结一下是吧:

1 fmifs.dll 中的 FormatEx。
2 IOCTL_DISK_FORMAT_TRACKS 低级格式化,但什么是低级格式化呢?不建立FS?
很早就知道这个东西,但很难理解低格。
3 PostMessage 山寨 robot,哦,四个按键消息,三个窗口,窗口名字有中文怎么办?其他语言OS不认识乐。

4 找 16MB 空 FS Image,直接写下去,不管是多大的 capacity。

好,一个一个做实验。
碧螺春的马甲 2010-07-29
  • 打赏
  • 举报
回复
嗯,我知道的,知道的,知道的。

知道啥?知道啥?知道啥?

曾经就写到 MBR 去了... 不过现在经验大大地,不在研发机上做实验了。
fly4free 2010-07-29
  • 打赏
  • 举报
回复
关于最后一个,要小心是针对分区,还是针对磁盘,你知道的~
cnzdgs 2010-07-28
  • 打赏
  • 举报
回复
IOCTL_DISK_FORMAT_TRACKS是磁盘的低级格式化,一般所说的格式化是高级格式化,即建立文件系统,fmifs.dll中的FormatEx函数提供了格式化功能,在网上可以搜索到相关说明。
另外,如果了解文件系统,也可以通过自己写磁盘的方式实现格式化。
fly4free 2010-07-28
  • 打赏
  • 举报
回复
不知道是否可以通过COM ……

我喜欢 api, com很头痛。。。
fly4free 2010-07-28
  • 打赏
  • 举报
回复
使用 fmifs.dll 中的FormatEx,貌似只能这样了吧?
hankcs 2010-07-28
  • 打赏
  • 举报
回复
最简单的方法是先Sendmessage模拟用户单击确定然后将这个弹出的窗口隐藏
  • 打赏
  • 举报
回复
用format.exe吧

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧