Ver Mensaje Individual
  #4  
Antiguo 28-02-2007
svaldiviezo svaldiviezo is offline
Registrado
 
Registrado: ene 2007
Posts: 8
Reputación: 0
svaldiviezo Va por buen camino
mientras sea solo investigación

prueba esto: (tomado de trucomania):

Existe una función en la DLL: Shell32.dll : ShFormatDrive(), que lo que hace es lanzar la ventana que existe en el menú archivo del Explorador de Windows para formatear discos.
En el truco [81], usamos esta misma función, salvo que usamos otro método para ejecutar la función: la ejecutamos a través de la utilidad RunDll de Windows.
En nuestro programa haríamos los siguiente;


Declararemos estas constantes:



{Unidades} const DISCO_A = 0; const DISCO_B = 1; const POR_DEFECTO = $FFFF; {opciones} const QUICKFORMAT = 0; {Formateo rápido} const FULLFORMAT = 1; {Formateo completo} const SYSONLY = 2; {Formateo con archivos del sistema} {Si ha habido algún error la función devuelve un LongInt con estos valores} const ERROR = -1; const CANCELADO = -2; const NO_FORMATEAR = -3;


y esta función:


function SHFormatDrive(hWnd : HWND; Unidad : Word; fmtID : Word; Opciones : Word) : Longint stdcall; external 'Shell32.dll' name 'SHFormatDrive';

Por ejemplo para formatear la unidad A: y que sea un formateo rápido, pondríamos;


procedure TForm1.Button1Click(Sender: TObject); var Format_Result : longint; begin try Format_Result:= ShFormatDrive(Handle, DISCO_A, POR_DEFECTO, QUICKFORMAT); case Format_Result of ERROR : ShowMessage('Error al formatear el disco'); CANCELADO : ShowMessage('Operación cancelada por el usuario'); NO_FORMATEAR : ShowMessage('No se ha formateado') else ShowMessage('El disco ha sido formateado satisfactoriamente'); end; except end; end;
Responder Con Cita