effacement disque dur - VB/VBA/VBS - Programmation
Marsh Posté le 25-01-2004 à 17:10:21
une fois fini, tu nous donneras un lien vers ton programme
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. |
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.
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
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 ? |
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 !
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...
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.
Marsh Posté le 26-01-2004 à 12:11:08
Code :
|
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.
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.
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).
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.
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 !!
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)
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()
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