Formatando com o VB
Vamos usar uma chamada a API , que muita gente talvez não saiba que exista. Abaixo temos a função SHFormatDrive que não esta bem documentada. (Veja o artigo da microsoft) Com ela podemos formatar os discos usados no sistema.
Public Declare Function SHFormatDrive Lib "shell32" (ByVal hWnd As Long, ByVal Drive As Long, _ ByVal fmtID As Long, ByVal Options As Long) As Long
Vejamos os parâmetros usados pela função :
Hwnd - O identificador usado para o seu formulário que é chamado quando a função é executada. Após a chamada da função o seu formulário somente irá receber o foco quando a caixa de diálogo que a função abriu for fechada.
Drive - O número do drive que você quer formatar . 0 identifica o drive A: 1 o drive B:, 2 o drive C, etc. Para identificar o drive usamos a função abaixo:
LngDrive = (Asc("A") - 65)
ASC("A") irá retornar o codigo da letra . Assim "A" retorna 65 e lngDrive se torna 0 . Percebeu ?
fmtID - Este parâmetro pode ser usado com o valor padrão - &HFFFF.-
Public Const FORMATA_PADRAO = &HFFFF
Options - Indica o tipo de formatação . Temos três tipos possíveis : rápida , completa e copia dos arquivos do sistema. Para chamar a função atribuimos as seguintes constantes:
Public Const FORMATA_RAPIDO = &H0 Public Const FORMATA_COMPLETO = &H1 Public Const FORMATA_SISTEMA = &H2
Agora vamos mostrar em um projeto como usar a função.
Crie um novo projeto e no projeto define um formulário como o mostrado a seguir:
A seguir insira o seguinte código no formulário:
General Declarations
Public TIPO As Long Private Sub Command1_Click() 'codigo
do botão formatar |
Insira um módulo ao seu projeto e a seguir o seguinte código no módulo:
'para formatar o drive Public Declare Function SHFormatDrive Lib "shell32" (ByVal hWnd As Long, ByVal Drive As Long, ByVal fmtID As Long, ByVal Options As Long) As Long 'para saber se o drive é do tipo removível ( retorna 2) Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Const FORMATA_RAPIDO = &H0 'para formatacao rapida Public Const FORMATA_COMPLETO = &H1 'para foramtacao completa Public Const FORMATA_SISTEMA = &H2 'para copiar arquivos do sistema Public Const FORMATA_PADRAO = &HFFFF 'constante padrao definida |
Ao executar o projeto você obterá o seguinte resultado:
Caixa de diálogo para formatação | Resultado final da formatação |
Espero que tenham gostado... Então, até a próxima dica...;-)