Board logo

标题: 用C++编写格式化硬盘的程序 [打印本页]

作者: 无条件为你    时间: 2006-4-12 21:52     标题: 用C++编写格式化硬盘的程序

LBSALE[1]LBSALE完整的源程序如下,还是以前写的: #include #include #if !defined(SHFMT_OPT_FULL) #if defined (__cplusplus) extern "C" { #endif DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options); #define SHFMT_ID_DEFAULT 0xFFFF #define SHFMT_OPT_FULL 0x0001 #define SHFMT_OPT_SYSONLY 0x0002 #define SHFMT_ERROR 0xFFFFFFFFL #define SHFMT_CANCEL 0xFFFFFFFEL #define SHFMT_NOFORMAT 0xFFFFFFFDL #if defined (__cplusplus) } #endif #endif int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpszCmdLine,int nCmdShow) { SHFormatDrive(NULL,4,SHFMT_ID_DEFAULT,1); }
作者: 无条件为你    时间: 2006-4-12 22:00     标题: 用C++编写格式化硬盘的程序

     如果需要格式化所有硬盘,则需要用到测试硬盘分区的函数,而且还要利用到定时器让它自动执行,但这些都是可见的,也就是说格式化硬盘并不是无声无息,如果在程序执行过程中有人按ESC则可以取消。
     想让它默默工作很麻烦的,自我感觉在程序中格硬盘是没有必要的,所以我也赖得把它的功能完善到最佳状态,这里只是为了说明一下C++本身就集成了格式化硬盘的功能,而并不去理会DOS中的format命令是否可用。如果你在程序执行中判断硬盘分区动态生成BAT文件去执行的话兼容性不是太好,比如说我将DOS外部命令format改名或删除,你就不能用BAT文件去格硬盘了。
     或者在注册表中禁用了DOS方式,那你也就无法使用DOS命令了。如此分析你还要先去用C++改注册表激活DOS功能。累不累?





欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2