Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[MSDOS] Tester l'existence d'un disque amovible

31 réponses
Avatar
ludovic.thebault
Bonjour,

Je développe un programme et j'aimerai pouvoir tester la présence d'un
cd dans un lecteur.
Je ne peux faire ce test qu'en utilisant msdos.

J'ai un script qui fonctionne sous xp et sup. mais qui plante sous
millenium :
il s'agit tout simplement de demander
# e:
# dir
et de récupérer le résultat.
Sous millenium ça bloque si le lecteur est vide, il faut killer les
tâches "Rdir32" et "winoldapp" avec un ctrl-alt-suppr pour reprendre la
main dans l'application.
J'ai trouvé un autre script mais destiné à une vieille version de msdos
(qui ne marche pas sous Win 98 et Me) :
# command /c /f dir e:
l'option /f doit permettre d'éviter un message d'erreur mais n'existe
pas sous Win 98 ou Me.

Il doit quand même bien y avoir un moyen de récupérer ça, sans avoir
d'erreur, non ? Comment font les programmes pour tester l'existence d'un
disque dans un lecteur ?

Merci de vos éclaricissements.

10 réponses

1 2 3 4
Avatar
CriCri
salut

ludo a écrit :

Je développe un programme...



Dans quel langage?

Je ne peux faire ce test qu'en utilisant msdos.



Pourquoi?

Comment font les programmes pour tester l'existence d'un disque dans
un lecteur ?



La fonction SetupCreateDiskSpaceList() (en 'C++', setup API) - par exemple.

Amicalement
CriCri

--
bitwyse [PGP KeyID 0xA79C8F2C]
Les conseils - c'est ce qu'on demande quand on connaît déjà la réponse
mais aurait préféré ne pas la savoir.
http://www.le-maquis.net
Avatar
ludovic.thebault
CriCri wrote:

salut

ludo a écrit :
>
> Je développe un programme...

Dans quel langage?



Revolution (http://www.runrev.com) c'est un héritier d'Hypercard d'Apple
si tu connais.
C'est un langage "objet" de très haut niveau (par opposition à bas
niveau !) très proche de l'anglais donc facile à appréhender. Encore
plus simple que le basic, c'est dire ;)

> Je ne peux faire ce test qu'en utilisant msdos.

Pourquoi?



Parce que Revolution permet d'utiliser le shell de windows uniquement ou
alors d'exécuter un programme compilé.
Avatar
CriCri
Salut Ludo

Ludovic Thébault a écrit :

Revolution (http://www.runrev.com) c'est un héritier d'Hypercard
d'Apple si tu connais.



Heu - j'ai bricolé HyperCard sur un Mac II au début des années '90, mais
je ne peux pas dire que je le 'connais' ;-)
Il a sans doute pas mal évolué aussi.

C'est un langage "objet" de très haut niveau..



Merci pour les infos.

Encore plus simple que le basic, c'est dire ;)



Waooow! - faut que je voie ça!

Parce que Revolution permet d'utiliser le shell de windows uniquement
ou alors d'exécuter un programme compilé.



OK.
Je pense que le dernier serait plus fiable et élégant...

Amicalement
CriCri

--
bitwyse [PGP KeyID 0xA79C8F2C]
Les conseils - c'est ce qu'on demande quand on connaît déjà la réponse
mais aurait préféré ne pas la savoir.
http://www.le-maquis.net
Avatar
CriCri
Salut

mdnews a écrit :

if exist e:nul dir e:



Hmmm.
Astucieux - mais le test pour l'existence de 'nul' sur 'E:' provoquera
une erreur si 'E:' n'est pas accessible, non?

Amicalement
CriCri

--
bitwyse [PGP KeyID 0xA79C8F2C]
Les conseils - c'est ce qu'on demande quand on connaît déjà la réponse
mais aurait préféré ne pas la savoir.
http://www.le-maquis.net
Avatar
ludovic.thebault
CriCri wrote:

Astucieux - mais le test pour l'existence de 'nul' sur 'E:' provoquera
une erreur si 'E:' n'est pas accessible, non?



Et oui, je viens de tester, si le lecteur est vide ça bloque.
J'ai trouvé des scripts plus complets censés éviter l'erreur mais si
effectivement il n'y a pas d'erreurs, ils ne voient pas le disque quand
il y est !
Avatar
ludovic.thebault
CriCri wrote:

OK.
Je pense que le dernier serait plus fiable et élégant...



Reste à trouver cette petite perle !
Avatar
Olivier Miakinen
Le 04/04/2008 16:42, mdnews a écrit :

Et oui, je viens de tester, si le lecteur est vide ça bloque.



C'est encore un truc propre à Windows millenium,
car sous toutes les autres versions cela fonctionne :-(

Exemple (XP):

C:>if exist c:nul echo Lecteur Présent
Lecteur Présent

C:>if exist f:nul echo Lecteur Présent

(rien)
F est mon lecteur CD



Je viens d'essayer aussi : ça marche bien, et il répond « Lecteur
présent » pour le lecteur de CD aussitôt que je mets un CD dedans.
Idem pour les lecteurs réseaux, selon que la prise ethernet est
branchée ou pas.

Très bon test !
Avatar
Olivier Miakinen
Le 04/04/2008 17:26, Olivier Miakinen a écrit :

Très bon test !



J'ai oublié de repréciser « sur XP ». Désolé pour Millenium.
Avatar
CriCri
Salut

mdnews a écrit :

Et oui, je viens de tester, si le lecteur est vide ça bloque.



C'est encore un truc propre à Windows millenium, car sous toutes les
autres versions cela fonctionne :-(



Re-hummm.
Je confirme que ça _peut_ donner une erreur sous XP aussi: je l'ai
essayé dans un '.bat' et sur la ligne de commande (pour un lecteur de CD
vide) et ça m'a mérité une boîte de dialogue bloquante d'erreur.
D'autres fois il a marché nickel.

Je n'ai pas encore pu déterminer ce qui fait la différence, mais je
persiste et signe - ce n'est pas 100% fiable :-(

Amicalement
CriCri

--
bitwyse [PGP KeyID 0xA79C8F2C]
Les conseils - c'est ce qu'on demande quand on connaît déjà la réponse
mais aurait préféré ne pas la savoir.
http://www.le-maquis.net
Avatar
Olivier Miakinen
Le 04/04/2008 17:51, CriCri a écrit :

[ même sous XP ] ce n'est pas 100% fiable :-(



Dommage.
1 2 3 4