Code source pour formater le disque

Résolu
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007 - 12 avril 2006 à 15:21
 baby3378 - 6 mai 2006 à 16:43
Bonjour!
Je voudrais savoir comment on formate le disque dur en C++.
Je sais qu'un tel code peut être dangereurx entre de mauvaises mains(les miennes ?^^) mais j'aurais besoin de le savoir.Voila, salut!

28 réponses

meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 17:01
Re-re,


shlobj.h + shell32.dll selon la MSDN.

A plus tard.
3
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 15:36
Salut,

Tout dépend du type de formattage souhaité (quel filesystem)...
Pour Windows, à partir des versions 2000, tu peux utiliser (avec précaution, évidemment !) la routine SHFormatDrive.
Un lien vers la MSDN...

En espérant t'avoir un peu aidé,
A plus tard.
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 15:52
Merci mais je n'ai pas compris les parametres de la structure :(
Esque tu pourrait me les expliquer ?Dans ce cas la tu m'aiderais bien plus qu'un peu ! ;)
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 avril 2006 à 16:01
Non explique rien lol :)
un programme n'a jamais eu besoin de formater un Lecteur...
Et bon cette procédure apelle juste la boite de dialogue Formater...
Donc c'est même pas un formatage.
if(!Meilleur("Joky")) return ERREUR;<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 16:04
Exact Jocky
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 16:21
Citation:Joky
"Non explique rien lol :)"

Pourquoi ?J'ai une tête de pirate informatique qui a envie de quelques années de prison ?

Citation:Joky
"Et bon cette procédure apelle juste la boite de dialogue Formater..."

Mais je n'en demande pas plus!^^

Citation:Joky
"Donc c'est même pas un formatage."
Non,c'est vrai.Mais ca me convient.
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 avril 2006 à 16:23
Je sais qu'un tel code peut être dangereurx entre de mauvaises mains(les miennes ?^^)
:s

mais j'aurais besoin de le savoir.Voila, salut!
??? pourquoi ?

if(!Meilleur("Joky")) return ERREUR;<
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 16:29
Ah ! Il me semblait m'être trompé...
En gros :
1. le premier paramètre correspond au HANDLE de la fenêtre appelante.
2. le second spécifie le disque (0 pour la disquette A: / 2 pour le disque dur C:)
3. le troisième est relatif à la capacité : 0 par défaut (5 pour 3 1/2 pouces 720 ko, 3 pour 5 1/4 pouces 360 ko)
4. le dernier spécifie si l'on fait un formattage complet (= 0) ou rapide (= 1)

Voilà, en espérant que cela t'aide un peu,
Ciao.
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 16:32
Merci beaucoup!C'est rès sympas.Euh juste, c'est quoi HANDLE ?
Encore merci!
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 avril 2006 à 16:40
Ben forcément !
Dis moi pas que c'est pas pour faire une couille ton truc lol
Parce que vouloir formater ça implique forcément une connaissance des choses basiques comme HANDLE.

Mais bon après tu vas nous demander pourquoi ça veut pas compiler donc je devance
C'est marqué Windows 2000 minimum voilà ;)
@ toi de voir ce qui faut rajouter :)
if(!Meilleur("Joky")) return ERREUR;<
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 16:41
Re,

En général, il s'agit de l'identifiant de tout objet Microsoft Windows, comme entre autres : fenêtres, bouton, menu déroulant, barre d'outils, etc.
Tout repose sur un principe d'héritage où la fenêtre mère (le bureau, je crois) dispose d'un ensemble de fenêtres filles (les applications ouvertes, par exemple)... elles-mêmes ayant des enfants (boutons, par de défilement, etc.).
Tous ces éléments possèdent un identifiant unique, nommé HANDLE.
Ainsi, il est possible, en programmation Windows, quel est la fenêtre parente d'une boîte de dialogue.
Je pense, peu-être à tort, que ce doit être ici de ce genre là : tu dois préciser à Windows à quelle fenêtre appartient la pop-up de formattage.

Enfin, je dis cela, mais je reconnais ne pas avoir testé...
En espérant que mes explications vaseuses t'aient un tantinet aidé,
Ciao.
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 16:47
Joky > Entre nous soit dit, si, dans le pire des cas, darkdidi veut "faire une couille", comme tu dis, ce n'est pas forcément gagné d'avance... Et, personnellement, je ne penses pas que ce soit le cas.
De toute sorte, les informations données ici sont disponibles sur la MSDN, donc... rien n'interdit de les utiliser à bon escient.

Ciao.
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 16:59
Bon merci.Je pense que je me débrouillerais avec tes infos.Y a t'il bibliotheque special à inclure dans le code? windows.h j'imagine ?
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
12 avril 2006 à 17:09
Lol ouai c'est claire
Cette fonction ne vaut rien niveau formatage...

On pourrait faire bien pire en écrivant un fichier bat... mettre une tite clé registre... et faire redémarrer l'ordi lol
Mais bon Motus et bouche cousue :p
if(!Meilleur("Joky")) return ERREUR;<
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 17:15
On pourrait peut-être aussi cacher la fenêtre de formattage... mais, imposteur que je suis, je ne sais évidemment pas faire des trucs aussi pointus
A plus tard, Joky'
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
12 avril 2006 à 17:16
On pourrait peut-être aussi cacher la fenêtre de formattage... mais, imposteur que je suis, je ne sais évidemment pas faire des trucs aussi pointus
A plus tard, Joky'
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 17:44
Dans le genre "montrer le bonne exemple et éviter de donner de mauvaises idées" on a vu mieux ;)
Sinon pour le HANDLE, n'y a t'il pas un point commun avec les boites de dialogue ?Je vas mettre un joli code:

#include <windows.h>


int main( HANDLE hInstance, HANDLE hPrevInst,
LPSTR lpCmdLine, int nCmdShow )
{
MessageBox( NULL, "Avez vous de mauvaises intentions ?!","Soupscons infondés", MB_ICONQUESTION | MB_YESNO );
return( 0 );
}

Je me disais bien que HANDLE me rappelait quelque choses!
J'immagine que les boites de dialogues dépendent aussi en temps normal d'un fenetre mère, et pourtant ce code fonctionne.N'y a t'il donc pas un moyen de contourner le HANDLE de la boite de formatage ?
0
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
12 avril 2006 à 18:21
Et bizarrement nan... c'est marqué dans la MSDN, d'ailleurs si on pouvait m'expliquer pourquoi...
* hwnd :
[in] The handle of the parent window of the dialog. The Format dialog must have a parent window; therefore, this parameter cannot be NULL.
C'est la life...
___________________
MVS - Most Valuable Student ( Microsoft)
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 avril 2006 à 18:40
Joky>crois moi on peut faire bien plus que redémmarrer l'ordinateur à partir du registre. On modifie ou suprimme une petite clée essenciel et BANG (héhéhé).

Bon en effet, il est impossible de formater un disque à partir de Windows. Mais si il veut simplement formater une disquette alors no problem.
___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_darkdidi Messages postés 21 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 4 janvier 2007
12 avril 2006 à 18:46
C'est quoi une clé registre ?
0
Rejoignez-nous