Formater une disquette

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 587 fois - Téléchargée 39 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
tcedi Messages postés 59 Date d'inscription samedi 27 juillet 2002 Statut Membre Dernière intervention 11 septembre 2003
2 févr. 2003 à 13:19
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 !
SupraDolph Messages postés 196 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 1 septembre 2008 1
2 févr. 2003 à 13:00
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 ?
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
2 févr. 2003 à 05:48
Cool enfin une vrai méthode de formatage :) (Je dit sa parce que j'ai déjà vu : Kill "A:*.*")

@+

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.