在Windows 7上用c ++格式化硬盘(Formatting a hard disk in c++ on Windows 7)
我想知道如何通过c ++格式化Windows 7中的硬盘? 我目前有一个使用dll中的函数成功的应用程序。 不幸的是我没有dll的代码所以我无法看到它的作用。 它实际上并不格式化驱动器本身,但它启动内置于Windows中的格式实用程序并启动格式化。 格式实用程序的含义是右键单击驱动器并选择格式时得到的对话框。 不知何故,dll打开此对话框并启动格式。 该对话框在Windows XP和7中几乎完全相同,但由于某些原因它在7中无法正常工作。我已尝试在管理员中运行该应用程序,但没有运气。
I am wondering how to format a hard disk in Windows 7 through c++? I currently have an application that is successful at this using a function in a dll. Unfortunately I don't have the code for the dll so there is no way for me to see what its doing. It doesn't actually format the drive itself but it launches the format utility built into windows and starts the formatting. What I mean by format utility is the dialog you get when you right click on a drive and select format. Somehow the dll opens this dialog and starts the format. The dialog is almost identical in Windows XP and 7 but for some reason it does not work properly in 7. I have tried running the application in admin as well with no luck.
原文:https://stackoverflow.com/questions/2223804
更新时间:2019-08-09 05:00
最满意答案
如果内存服务,你正在寻找SHFormatDrive() 。
If memory serves, you're looking for SHFormatDrive().
2010-02-08
相关问答
由于您在谈论物理磁盘而不是分区,请查看DeviceIoControl 。 从那里的示例,其中包括在wmain计算总磁盘大小: #include
#include
#include
BOOL GetDriveGeometry(LPWSTR wszPath, DISK_GEOMETRY *pdg)
{
HANDLE hDevice = INVALID_HANDLE_VALUE; // handle to the drive
...
我不知道有任何其他托管方式来获取磁盘分区信息。 您可以使用C#中的P / Invoke使用Win32 API。 但是,除非绝对必要,否则不应该这样做。 您需要的Win32函数称为DeviceIoControl()。 API文档可以在http://msdn.microsoft.com/en-us/library/aa363216(VS.85).aspx找到。 使用控制代码IOCTL_STORAGE_GET_DEVICE_NUMBER调用DeviceIoControl(),您将获得给定分区设备句柄的物
...
如果内存服务,你正在寻找SHFormatDrive() 。 If memory serves, you're looking for SHFormatDrive().
是的,当您订购额外的磁盘时,磁盘已经被格式化,但是当您修改虚拟机并添加更多磁盘时,它们不会被格式化。 问候 yep, when you order wiht additional disks the disks are already formated, but when you modify your VM and add more disks they are not formated. Regards
1)Windows确实将最近读取的文件缓存在内存中。 这本书的Windows内部包含了一个关于它是如何工作的极好的描述。 现代版本的Windows还使用了一种名为SuperFetch的技术,它将尝试抢先将磁盘内容提取到基于使用历史记录的内存中,并将ReadyBoost缓存到闪存驱动器,从而实现更快的随机访问。 所有这些都会提高初始运行后从磁盘访问数据的速度。 2)目录真的不会影响磁盘上的布局。 碎片整理您的驱动器将文件数据分组在一起。 Windows Vista将自动对磁盘进行碎片整理。 理想情况
...
请改用 。 注意: href="/styles.css"更改为href="./styles.css" ,这是您脚本的当前目录。 Use instead. Note: href="/styles.css" changed to href="./styles.
...
这可能很有用 using System;
using System.Management;
using System.Collections;
namespace WmiControl
{
public class WMI
{
public bool GetDiskSerial(string Computername)
{
try
{
ManagementScope
...
使用Win32_Volume类的Format方法。 详情在这里 。 Use the Format method of the Win32_Volume class. Details here.