effacement disque dur

effacement disque dur - VB/VBA/VBS - Programmation

Marsh Posté le 25-01-2004 à 16:17:41    

Bonjour, Sous W2K, j'aurai besoin pour une appli en VB6 de formater ou d'effacer tout les fichiers et rep. d'un disque dur sans aucune intervention. A part le clic sur un bouton.
Quelqu'un a-t-il la soluce ?
Merci beaucoup

Reply

Marsh Posté le 25-01-2004 à 16:17:41   

Reply

Marsh Posté le 25-01-2004 à 17:10:21    

[:rofl]
 
une fois fini, tu nous donneras un lien vers ton programme [:petrus75]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 25-01-2004 à 17:26:02    

oscar30340 a écrit :

Bonjour, Sous W2K, j'aurai besoin pour une appli en VB6 de formater ou d'effacer tout les fichiers et rep. d'un disque dur sans aucune intervention. A part le clic sur un bouton.
Quelqu'un a-t-il la soluce ?
Merci beaucoup

oui, faire un programme pour formater les disque et effacer les fichiers comme les dossiers : Tu as tous ce qu'il faut avec les API windows et sur le site de www.vbfrance.com. Bonne chance ! Avant d'appuyer sur le bouton et que ça fonctionne t'as du pain sur la planche.

Reply

Marsh Posté le 25-01-2004 à 17:43:04    

shell(format D:\)

Reply

Marsh Posté le 25-01-2004 à 17:43:52    

jagstang a écrit :

shell(format D:\)

testé et approuver ? :??:

Reply

Marsh Posté le 25-01-2004 à 17:51:14    

non pas testé. mais d'après-toi ça serait quoi le problème ?
 
la confirmation peut-être

Reply

Marsh Posté le 25-01-2004 à 17:53:03    

jagstang a écrit :

non pas testé. mais d'après-toi ça serait quoi le problème ?
 
la confirmation peut-être


 
Dans shell(... tu dois rentrer un nom de fichier bien précis, avec son chemin. Format n'en n'as pas caractéritiques, c'est une commande DOS, va t-il l'accepter, c'est moins sûr ! et je ne vais pas m'y essayer ! :D

Reply

Marsh Posté le 25-01-2004 à 18:12:41    

dans shell tu peux executer n'importe quelle commande MS-DOS, comme ping, net, etc...
 
AUCUN rapport avec un nom de fichier...

Reply

Marsh Posté le 25-01-2004 à 18:14:24    

Reply

Marsh Posté le 25-01-2004 à 18:39:00    

au temps pour moi !

Reply

Marsh Posté le 25-01-2004 à 18:39:00   

Reply

Marsh Posté le 26-01-2004 à 09:45:33    

Non, la commande Format lancée par shell, demande le nom du disque et confirmation. j'ai essayé le petit prog, rm.exe, qui efface tout avec l'option -r, mais s'il fonctionne bien sous XP, il ne tourne pas sous 2000.(Message pour certains : il ne s'agit pas de faire un "mechant prog", c'est une appli pour un magasin, je dois faire en sorte que par un simple bouton, le prog efface le contenu d'un disque dur, et copie le contenu d'un cd sur ce disque ) c'est tout. Il tourne sous W2K.

Reply

Marsh Posté le 26-01-2004 à 12:11:08    

Code :
  1. Microsoft Windows 2000 [Version 5.00.2195]
  2. (C) Copyright 1985-2000 Microsoft Corp.
  3. C:\Documents and Settings\sdevidal>format /?
  4. Formate un disque utilisable avec Windows 2000.
  5. FORMAT volume [/FS:sys_fich] [/V:nom_volume] [/Q] [/A:taille] [/C] [/X]
  6. FORMAT volume [/V:nom_volume] [/Q] [/F:taille]
  7. FORMAT volume [/V:nom_volume][/Q][/T:pistes /N:secteurs]
  8. FORMAT volume [/V:nom_volume][/Q][/1][/4]
  9. FORMAT volume [/Q] [/1] [/4] [/8]
  10. volume           Spécifie la lettre de lecteur (suivie de deux-points),
  11.                   le point de montage ou le nom de volume.
  12. /FS:sys_fich     Spécifie le type de système de fichiers (FAT, FAT32 ou NTFS).
  13. /V:nom_de_volume Spécifie le nom de volume.
  14. /Q               Effectue un formatage rapide.
  15. /C               Les fichiers créés sur le nouveau volume seront compressés
  16.                   par défaut.
  17. /X               Force le volume à être démonté d'abord si nécessaire.
  18.                   Tous les descripteurs ouverts sur le volume ne seront
  19.                   plus valides.
  20. /A:taille        Remplace la taille d'unité d'allocation par défaut. Les
  21.                   paramètres par défaut sont très fortement recommandés
  22.                   dans le cas général.
  23.                   NTFS gère 512, 1024, 2048, 4096, 8192, 16 Ko, 32 Ko, 64 Ko.
  24.                   FAT gère 512, 1024, 2048, 4096, 8192, 16 Ko, 32 Ko, 64 Ko.
  25.                   (128 Ko, 256 Ko pour taille de secteur > 512 octets).
  26.                   FAT32 gère 512, 1024, 2048, 4096, 8192, 16 Ko, 32 Ko, 64 Ko.
  27.                   (128 Ko, 256 Ko pour taille de secteur > 512 octets).
  28.                       Notez que les systèmes de fichiers FAT et FAT32 imposent
  29.                   les restrictions suivantes sur le nombre de clusters par
  30.                   volume :
  31.                   FAT : nombre de clusters <= 65526
  32.                   FAT32 : 65526 < nombre de clusters < 268435446
  33.                   FORMAT cessera immédiatement s'il est jugé que les conditions
  34.                   ci-dessus ne peuvent pas être remplies en utilisant la
  35.                   taille de clusters spécifiée.
  36.                   La compression NTFS n'est pas prise en charge pour les
  37.                   tailles d'unités d'allocation plus grandes que 4096.
  38. /F:taille        Spécifie la taille de la disquette à formater (160,
  39.                   180, 320, 360, 640, 720, 1,2, 1,23, 1,44, 2,88 ou 20,8).
  40. /T:pistes        Spécifie le nombre de pistes par face de disque.
  41. /N:secteurs      Spécifie le nombre de secteurs par piste.
  42. /1               Formate une seule face d'une disquette.
  43. /4               Formate une disquette 5,25 pouces 360 Ko dans un
  44.                   lecteur haute densité.
  45. /8               Formate huit secteurs par piste.
  46. C:\Documents and Settings\sdevidal>


 
Si on résume :
 
format D: /FS:NTFS /V:New_Volume /X
 
Mais comme on voit, sous 2000 du moins, il n'y a pas de message pour éviter la confirmation. A partir de là, cette commande me semble pas géniale.
 
Sous certains OS il y a en plus le commutateur /P, /Q ou /V qui permet d'éxécuter en mode silencieux. Mais visiblement, sous 2K Pro du moins y'a pas.

Reply

Marsh Posté le 26-01-2004 à 13:08:21    

Oui, mais ça demande le nom de volume en cours, et une confirmation.
Avant, il y avait le commutateur /autotest  , qui permettait de rien demander, mais apparemment il n'existe plus.

Reply

Marsh Posté le 26-01-2004 à 13:19:48    

c'est pas un problème de donner de l'input à une commande:
 
format d: [paramètres et tout ça] <input_format.txt
 
et hop, c'est dans la boîte. Dans le fichier input_format.txt, tu tapes exactement ce que tu taperais si tu lançais la commande format à la main. Et avoir le nom du disque, c'est simple comme bonjour.
 
Cette technique est valable pour n'importe quelle ligne de commande. Tu génères ce fichier et tu le passes en paramètre. Faut prévoir le coup de la langue de l'OS aussi, des fois qu'il attendrait 'Y' pour la confirmation et non un 'O' (ou inversément).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 26-01-2004 à 17:07:37    

J'ai crée le fichier texte format.txt contenant les reponses
à envoyer à la commande format. je l'ai mis en racine du c:
Si dans une fenetre dos, je tape :
format.com f: /V:name /Q <c:\format.txt
ca marche nickel, le disque f: est bien formaté sans confirmation.
Par contre sous VB  
Var = Shell("format.com f: /V:name /Q <c:\format.txt", 3)
ne fonctionne pas, ca ouvre une console, mais ca la referme trop vite pour voir l'erreur.

Reply

Marsh Posté le 26-01-2004 à 17:23:47    

C'est pas trés élegant, mais je viens de trouver une soluce:
en VB:
'j'ouvre une console
Var = Shell("cmd", 3)
' et j'y envoie la ligne de commande
SendKeys "format.com f: /V:name /Q <c:\format.txt~", True
' puis je ferme la console
SendKeys "exit~", True
 
ca marche, mais bon !!

Reply

Marsh Posté le 26-01-2004 à 17:39:20    

c'est sûrement pas le plus élégant, mais on peux certainement pas faire mieux...
 
Tu peux cacher la fenêtre (voir le lien que j'ai posté plus haut)

Reply

Marsh Posté le 26-01-2004 à 17:39:52    

en utilisation l'option 5 au lieu de 3 dans l'appel de la fonxction shell()

Reply

Marsh Posté le 26-01-2004 à 18:06:31    

Ok, l'option 2 plutot.
En tout cas merci à tous

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed