Formater une disquette

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 162 fois - Téléchargée 37 fois

Contenu du snippet

Ce code permet de formater une disquette avec la boîte de dialogue de formatage de Windows. Ce code est commenté au maximum.

Source / Exemple :


'Déclaration de la constante.
Private Const SHFMT_ID_DEFAULT = 0

'********************************************************************************
' Prototype de la fonction SHFormatDrive de chez Microsoft :
'
' INPUT : Reçoit le Handle de la fenêtre, le numéro du lecteur à formater,
'         l'ID du format physique, le numéro de l'option désirée.
'
' PROCESS : Affiche la boîte de dialogue de formatage de Windows.
'
' OUTPUT : La valeur du résultat de l'opération.
'********************************************************************************
Private Declare Function SHFormatDrive Lib "shell32.dll" (ByVal hwnd As Long, ByVal drive As Integer, ByVal fmtID As Integer, ByVal options As Integer) As Long
Private Sub Command1_Click()
    Dim Réponse As Long

    'Informations supplémentaires :
    '
    'Numéros des différents lecteurs :
    '0 = A:
    '1 = B:
    '
    '2 = C:
    '...
    '
    'ID du format physique :
    'Il n'existe que l'ID SHFMT_ID_DEFAULT.
    '
    'Numéros des options :
    '0 = Formatage complet
    '1 = Formatage rapide
    '2 = Crée une disquette de démarrage MS-DOS
    '
    'REMARQUE : Certaines options ne fonctionnent pas sous toutes les versions de Windows.

    'Appel de la fonction.
    Réponse = SHFormatDrive(hwnd, 0, SHFMT_ID_DEFAULT, 0)

    'Test du résultat de l'opération.
    If Réponse = 0 Then
        Réponse = MsgBox("Formatage réalisé avec succès !", vbOKOnly + vbInformation)
    Else
        Réponse = MsgBox("Impossible de formater la disquette." & vbCrLf & "Soit vous avez annulé la procédure de formatage, soit une erreur s'est produite.", vbCritical + vbOKOnly)
    End If
    'Informations supplémentaires :
    '
    'Numéros des résultats de l'opération :
    '0 = Formatage effectué sans problème
    '-1 = Formatage annulé ou une erreur s'est produite durant le formatage
End Sub

Conclusion :


Ce code a été testé sous Windows 2000 Professionnel et Windows XP.
Aucun bogue connu.

http://www.tcedi.be.tf

A voir également

Ajouter un commentaire

Commentaires

cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
Cool enfin une vrai méthode de formatage :) (Je dit sa parce que j'ai déjà vu : Kill "A:*.*")

@+
SupraDolph
Messages postés
196
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
1 septembre 2008
1 -
Source bien commentée. Est ce qu'il est possible de ne pas afficher la boîte de dialogue de formatage de Windows et de confirmer automatiquement le formatage ?
tcedi
Messages postés
59
Date d'inscription
samedi 27 juillet 2002
Statut
Membre
Dernière intervention
11 septembre 2003
-
Malheureusement, SupraDolph, il est actuellement impossible de formater sans passer par la boîte de dialogue de formatage de Windows en utilisant cette méthode. Peut-être que Microsoft implémentera cette option dans la prochaine version de la librairie "shell32.dll". Si vous voulez vraiment formater sans passer par cette boîte de dialogue, vous pouvez toujours créer un petit programme de formatage en langage Assembleur en utilisant la sous-fonction 05h de l'interruption 13h du BIOS.

Bonne prog !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.