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 ?
Salut pevpev, Le samedi 5 avril 2008 à 16:37, CriCri a écrit :
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai fait un petit programme (exécutable DOS, 40kO, sans installation) que j'ai mis sur mon site: (rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe' - actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat' pour le tester et démontrer comment s'en servir. Merci à ceux qui veulent bien le tester de me signaler tout problème éventuel - ou bien me confirmer qu'il marche impec' ;-)
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
On passe la lettre du lecteur d'intérêt en argument ( cdready.exe n: ) et on récupère soit READY soit NOTREADY dans le presse-papier de Windows. Il doit être possible de faire passer l'ERRORLEVEL à 0 et -1 en doublant le nombre de lignes via un test chiadé et un Exit [return code] voulu. http://www.hiddensoft.com/autoit3/files/beta/autoit/docs/keywords/Exit.htm
Exécutable autonome pour tout Windows (pas MS-DOS, mais JCB-a-dit-qu'il-n'y-avait-pas-de-DOS-dans-XP ;) ) dispo sur http://opera-fr.com/pierre/autoit/cdready.exe pour tests :)
Autoit est fourni avec une DLL et un contrôle ActiveX pour utilisation avec un autre langage, au besoin...
Bon weekend
itou,
CriCri
@+ -- rm
Salut pevpev,
Le samedi 5 avril 2008 à 16:37, CriCri a écrit :
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai
fait un petit programme (exécutable DOS, 40kO, sans installation) que
j'ai mis sur mon site:
(rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe'
- actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat'
pour le tester et démontrer comment s'en servir.
Merci à ceux qui veulent bien le tester de me signaler tout problème
éventuel - ou bien me confirmer qu'il marche impec' ;-)
On peut faire ça aussi en _trois_ lignes d'AutoIt3
http://www.autoitscript.com/autoit3/ horriblement complexes !
On passe la lettre du lecteur d'intérêt en argument ( cdready.exe n: ) et
on récupère soit READY soit NOTREADY dans le presse-papier de Windows.
Il doit être possible de faire passer l'ERRORLEVEL à 0 et -1 en doublant le
nombre de lignes via un test chiadé et un Exit [return code] voulu.
http://www.hiddensoft.com/autoit3/files/beta/autoit/docs/keywords/Exit.htm
Exécutable autonome pour tout Windows (pas MS-DOS, mais
JCB-a-dit-qu'il-n'y-avait-pas-de-DOS-dans-XP ;) ) dispo sur
http://opera-fr.com/pierre/autoit/cdready.exe pour tests :)
Autoit est fourni avec une DLL et un contrôle ActiveX pour utilisation avec
un autre langage, au besoin...
Salut pevpev, Le samedi 5 avril 2008 à 16:37, CriCri a écrit :
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai fait un petit programme (exécutable DOS, 40kO, sans installation) que j'ai mis sur mon site: (rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe' - actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat' pour le tester et démontrer comment s'en servir. Merci à ceux qui veulent bien le tester de me signaler tout problème éventuel - ou bien me confirmer qu'il marche impec' ;-)
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
On passe la lettre du lecteur d'intérêt en argument ( cdready.exe n: ) et on récupère soit READY soit NOTREADY dans le presse-papier de Windows. Il doit être possible de faire passer l'ERRORLEVEL à 0 et -1 en doublant le nombre de lignes via un test chiadé et un Exit [return code] voulu. http://www.hiddensoft.com/autoit3/files/beta/autoit/docs/keywords/Exit.htm
Exécutable autonome pour tout Windows (pas MS-DOS, mais JCB-a-dit-qu'il-n'y-avait-pas-de-DOS-dans-XP ;) ) dispo sur http://opera-fr.com/pierre/autoit/cdready.exe pour tests :)
Autoit est fourni avec une DLL et un contrôle ActiveX pour utilisation avec un autre langage, au besoin...
Bon weekend
itou,
CriCri
@+ -- rm
CriCri
Salut
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
Mais c'est _précisément_ l'objet: répondre "oui", le _lecteur_ existe - même s'il n'y a pas de média dedans actuellement lisible. Peut-être ai-je mal compris ta 'plainte'?
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
Salut
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon
portable qui n'a aucun CD/DVD.
Mais c'est _précisément_ l'objet: répondre "oui", le _lecteur_ existe -
même s'il n'y a pas de média dedans actuellement lisible.
Peut-être ai-je mal compris ta 'plainte'?
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
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
Mais c'est _précisément_ l'objet: répondre "oui", le _lecteur_ existe - même s'il n'y a pas de média dedans actuellement lisible. Peut-être ai-je mal compris ta 'plainte'?
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
CriCri
Salut Enzba
rm a écrit :
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-) Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon - client... quelconque, qui n'a rien que Windoz installé...
Amitiés PevPev
-- 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
Salut Enzba
rm a écrit :
On peut faire ça aussi en _trois_ lignes d'AutoIt3
http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-)
Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir
contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon -
client... quelconque, qui n'a rien que Windoz installé...
Amitiés
PevPev
--
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
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-) Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon - client... quelconque, qui n'a rien que Windoz installé...
Amitiés PevPev
-- 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
CriCri
Salut
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
D'accord. Désolé - je me suis un peu égaré à cause du sujet du fil - chuis un chouïa distrait par des soucis perso... :-((
L'objet du programme jusqu'ici était de savoir dans un premier temps si un (lecteur de) disque amovible existait - afin de pouvoir ensuite tester sans erreur l'accessibilité d'un média dedans actuellement lisible: car si le lecteur lui-même n'existe pas, essayer d'y accéder rien que pour renifler la présence d'un support - CD, disque dur, carte flash etc - peut provoquer tout de suite une erreur (comme on a pu le constater). C'est donc la première étape (quand même importante) résolue - et j'y rajouterai prochainement la deuxième.
Amicalement CriCri
PS - je crois que la fonction actuelle marche correctement (essayer les '.bat') et je remercie et compte sur vous les testeurs de la version béta pour mettre le tout au point.
-- 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
Salut
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon
portable qui n'a aucun CD/DVD.
D'accord. Désolé - je me suis un peu égaré à cause du sujet du fil
- chuis un chouïa distrait par des soucis perso... :-((
L'objet du programme jusqu'ici était de savoir dans un premier temps si
un (lecteur de) disque amovible existait - afin de pouvoir ensuite
tester sans erreur l'accessibilité d'un média dedans actuellement
lisible: car si le lecteur lui-même n'existe pas, essayer d'y accéder
rien que pour renifler la présence d'un support - CD, disque dur, carte
flash etc - peut provoquer tout de suite une erreur (comme on a pu le
constater).
C'est donc la première étape (quand même importante) résolue - et j'y
rajouterai prochainement la deuxième.
Amicalement
CriCri
PS - je crois que la fonction actuelle marche correctement (essayer les
'.bat') et je remercie et compte sur vous les testeurs de la version
béta pour mettre le tout au point.
--
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
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
D'accord. Désolé - je me suis un peu égaré à cause du sujet du fil - chuis un chouïa distrait par des soucis perso... :-((
L'objet du programme jusqu'ici était de savoir dans un premier temps si un (lecteur de) disque amovible existait - afin de pouvoir ensuite tester sans erreur l'accessibilité d'un média dedans actuellement lisible: car si le lecteur lui-même n'existe pas, essayer d'y accéder rien que pour renifler la présence d'un support - CD, disque dur, carte flash etc - peut provoquer tout de suite une erreur (comme on a pu le constater). C'est donc la première étape (quand même importante) résolue - et j'y rajouterai prochainement la deuxième.
Amicalement CriCri
PS - je crois que la fonction actuelle marche correctement (essayer les '.bat') et je remercie et compte sur vous les testeurs de la version béta pour mettre le tout au point.
-- 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
rm
Le samedi 5 avril 2008 à 23:55, CriCri a écrit :
Salut Enzba
rm a écrit :
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-)
Pas toujours :-D
Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon - client... quelconque, qui n'a rien que Windoz installé...
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Amitiés
@+
PevPev
-- rm
Le samedi 5 avril 2008 à 23:55, CriCri a écrit :
Salut Enzba
rm a écrit :
On peut faire ça aussi en _trois_ lignes d'AutoIt3
http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-)
Pas toujours :-D
Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir
contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon -
client... quelconque, qui n'a rien que Windoz installé...
Justement, AutoIt permet de créer des scripts "compilés" (on va dire
encapsulés) sous forme d'exécutable autonomes qui normalement ne
necessitent rien d'autre pour faire leur petit boulot.
On peut faire ça aussi en _trois_ lignes d'AutoIt3 http://www.autoitscript.com/autoit3/ horriblement complexes !
Ben, oui - t'es adorable ;-)
Pas toujours :-D
Mais pour moi (ainsi que pour Ludo) je pense que l'objet est de pouvoir contrôler l'existence d'un lecteur chez le pigeon ...euhhh, pardon - client... quelconque, qui n'a rien que Windoz installé...
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Amitiés
@+
PevPev
-- rm
CriCri
Salut Enzba
rm a écrit :
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord. Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
Bon dimanche PevPev
-- 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
Salut Enzba
rm a écrit :
Justement, AutoIt permet de créer des scripts "compilés" (on va dire
encapsulés) sous forme d'exécutable autonomes qui normalement ne
necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord.
Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
Bon dimanche
PevPev
--
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
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord. Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
Bon dimanche PevPev
-- 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
Michel_D
Michel_D a écrit :
CriCri a écrit :
Salut
Sergio a écrit :
Comme c'est juste une API à appeler, dans ton langage, il n'y a pas l'équivalent de "RunDll32" du shell, qui permet d'exécuter une fonction API de Windows ?
Bonne idée - et s'il peut 'spawn'er un autre programme il devrait pouvoir aussi lancer rundll32.exe pareil...
Par contre j'ai peur qu'il s'avère un peu compliqué en dehors du 'scope' d'un seul programme s'il faut faire 2 ou 3 appels externes pour exécuter les fonctions nécessaires (par exemple comment et où allouer un tampon persistent entre un appel et le suivant?).
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai fait un petit programme (exécutable DOS, 40kO, sans installation) que j'ai mis sur mon site: (rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe' - actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat' pour le tester et démontrer comment s'en servir. Merci à ceux qui veulent bien le tester de me signaler tout problème éventuel - ou bien me confirmer qu'il marche impec' ;-)
Bon weekend CriCri
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD. (HL-DT-ST DVDRAM GMA-4082N ATA Device sur Lenovo 3000 N200)
Je viens de regarder dans mes developpements et il me semblait bien que j'avais réalisé un truc de ce style (cela date de 2004).
Voici ce que cela donne en sortie (sous XP Pro) : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE
puis avec une clé usb connectée (corsair 4 Go) : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE X FAT32 Lecteur AMOVIBLE avec MEDIA
puis avec un CD Bootable dans le graveur de CD/DVD : C FAT32 Lecteur FIXE D CDFS Lecteur CDROM avec CD F NTFS Lecteur FIXE G NTFS Lecteur FIXE
puis aprés avoir éjécté le CD Bootable : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE
PS1:Fonctionne aussi sous W9x avec d'ailleurs des fonctions en plus.
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Pour info voici une partie du truc (le fichier de commande) : MD_GLECT.BAT
@ECHO OFF SET TEST_NT=%OS% IF "%TEST_NT%"=="" GOTO W9X_1 SET LDOSe GOTO Boucle :W9X_1 SET LDOS=A :Boucle IF "%LAFF%"=="Z" GOTO Quitter IF "%LAFF%"=="90" GOTO Quitter SET LAFF=%LDOS% IF "%TEST_NT%"=="" GOTO W9X_2 MD_GLECT.EXE /V /%LDOS% SET /A "LDOS=%LDOS%+1" GOTO Suite :W9X_2 MD_GLECT.EXE /V /_LDOS :Suite SET TXT=Lecteur RAMDISK Bootable IF ERRORLEVEL 222 GOTO Boot SET TXT=Lecteur FIXE Bootable IF ERRORLEVEL 220 GOTO Boucle SET TXT=Lecteur CDROM avec CD Bootable IF ERRORLEVEL 217 GOTO Boot SET TXT=Lecteur AMOVIBLE avec MEDIA Bootable IF ERRORLEVEL 216 GOTO Boot IF ERRORLEVEL 214 SET TXT=Lecteur RAMDISK IF ERRORLEVEL 212 SET TXT=Lecteur FIXE IF ERRORLEVEL 209 SET TXT=Lecteur CDROM avec CD IF ERRORLEVEL 208 SET TXT=Lecteur AMOVIBLE avec MEDIA IF ERRORLEVEL 84 SET TXT=Lecteur FIXE (Erreur de Lecture) IF ERRORLEVEL 82 SET TXT=Lecteur RESEAUX IF ERRORLEVEL 81 SET TXT=Lecteur CDROM IF ERRORLEVEL 80 SET TXT=Lecteur AMOVIBLE GOTO Boucle :Boot SET LDOS=%LAFF% IF NOT "%TEST_NT%"=="" GOTO Boucle MD_GLECT.EXE BOOT_%LDOS%.BIN /_LDOS GOTO Boucle :Quitter SET TEST_NT SET LDOS SET LAFF SET TXT=
Michel_D a écrit :
CriCri a écrit :
Salut
Sergio a écrit :
Comme c'est juste une API à appeler, dans ton langage, il n'y a pas
l'équivalent de "RunDll32" du shell, qui permet d'exécuter une
fonction API de Windows ?
Bonne idée - et s'il peut 'spawn'er un autre programme il devrait
pouvoir aussi lancer rundll32.exe pareil...
Par contre j'ai peur qu'il s'avère un peu compliqué en dehors du 'scope'
d'un seul programme s'il faut faire 2 ou 3 appels externes pour exécuter
les fonctions nécessaires (par exemple comment et où allouer un tampon
persistent entre un appel et le suivant?).
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai
fait un petit programme (exécutable DOS, 40kO, sans installation) que
j'ai mis sur mon site:
(rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe'
- actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat'
pour le tester et démontrer comment s'en servir.
Merci à ceux qui veulent bien le tester de me signaler tout problème
éventuel - ou bien me confirmer qu'il marche impec' ;-)
Bon weekend
CriCri
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon
portable qui n'a aucun CD/DVD.
(HL-DT-ST DVDRAM GMA-4082N ATA Device sur Lenovo 3000 N200)
Je viens de regarder dans mes developpements et il me semblait bien que
j'avais réalisé un truc de ce style (cela date de 2004).
Voici ce que cela donne en sortie (sous XP Pro) :
C FAT32 Lecteur FIXE
D Lecteur CDROM
F NTFS Lecteur FIXE
G NTFS Lecteur FIXE
puis avec une clé usb connectée (corsair 4 Go) :
C FAT32 Lecteur FIXE
D Lecteur CDROM
F NTFS Lecteur FIXE
G NTFS Lecteur FIXE
X FAT32 Lecteur AMOVIBLE avec MEDIA
puis avec un CD Bootable dans le graveur de CD/DVD :
C FAT32 Lecteur FIXE
D CDFS Lecteur CDROM avec CD
F NTFS Lecteur FIXE
G NTFS Lecteur FIXE
puis aprés avoir éjécté le CD Bootable :
C FAT32 Lecteur FIXE
D Lecteur CDROM
F NTFS Lecteur FIXE
G NTFS Lecteur FIXE
PS1:Fonctionne aussi sous W9x avec d'ailleurs des fonctions en plus.
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Pour info voici une partie du truc (le fichier de commande) :
MD_GLECT.BAT
@ECHO OFF
SET TEST_NT=%OS%
IF "%TEST_NT%"=="" GOTO W9X_1
SET LDOSe
GOTO Boucle
:W9X_1
SET LDOS=A
:Boucle
IF "%LAFF%"=="Z" GOTO Quitter
IF "%LAFF%"=="90" GOTO Quitter
SET LAFF=%LDOS%
IF "%TEST_NT%"=="" GOTO W9X_2
MD_GLECT.EXE /V /%LDOS%
SET /A "LDOS=%LDOS%+1"
GOTO Suite
:W9X_2
MD_GLECT.EXE /V /_LDOS
:Suite
SET TXT=Lecteur RAMDISK Bootable
IF ERRORLEVEL 222 GOTO Boot
SET TXT=Lecteur FIXE Bootable
IF ERRORLEVEL 220 GOTO Boucle
SET TXT=Lecteur CDROM avec CD Bootable
IF ERRORLEVEL 217 GOTO Boot
SET TXT=Lecteur AMOVIBLE avec MEDIA Bootable
IF ERRORLEVEL 216 GOTO Boot
IF ERRORLEVEL 214 SET TXT=Lecteur RAMDISK
IF ERRORLEVEL 212 SET TXT=Lecteur FIXE
IF ERRORLEVEL 209 SET TXT=Lecteur CDROM avec CD
IF ERRORLEVEL 208 SET TXT=Lecteur AMOVIBLE avec MEDIA
IF ERRORLEVEL 84 SET TXT=Lecteur FIXE (Erreur de Lecture)
IF ERRORLEVEL 82 SET TXT=Lecteur RESEAUX
IF ERRORLEVEL 81 SET TXT=Lecteur CDROM
IF ERRORLEVEL 80 SET TXT=Lecteur AMOVIBLE
GOTO Boucle
:Boot
SET LDOS=%LAFF%
IF NOT "%TEST_NT%"=="" GOTO Boucle
MD_GLECT.EXE BOOT_%LDOS%.BIN /_LDOS
GOTO Boucle
:Quitter
SET TEST_NT SET LDOS SET LAFF SET TXT=
Comme c'est juste une API à appeler, dans ton langage, il n'y a pas l'équivalent de "RunDll32" du shell, qui permet d'exécuter une fonction API de Windows ?
Bonne idée - et s'il peut 'spawn'er un autre programme il devrait pouvoir aussi lancer rundll32.exe pareil...
Par contre j'ai peur qu'il s'avère un peu compliqué en dehors du 'scope' d'un seul programme s'il faut faire 2 ou 3 appels externes pour exécuter les fonctions nécessaires (par exemple comment et où allouer un tampon persistent entre un appel et le suivant?).
Enfin, j'ai trouvé une autre solution beaucoup plus simple, donc j'ai fait un petit programme (exécutable DOS, 40kO, sans installation) que j'ai mis sur mon site: (rubrique 'Programmes' -> 'Utilitaires bitwyse' -> 'testdrive.exe' - actuellement numéro 9) avec un lisez-moi très sommaire et des '.bat' pour le tester et démontrer comment s'en servir. Merci à ceux qui veulent bien le tester de me signaler tout problème éventuel - ou bien me confirmer qu'il marche impec' ;-)
Bon weekend CriCri
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD. (HL-DT-ST DVDRAM GMA-4082N ATA Device sur Lenovo 3000 N200)
Je viens de regarder dans mes developpements et il me semblait bien que j'avais réalisé un truc de ce style (cela date de 2004).
Voici ce que cela donne en sortie (sous XP Pro) : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE
puis avec une clé usb connectée (corsair 4 Go) : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE X FAT32 Lecteur AMOVIBLE avec MEDIA
puis avec un CD Bootable dans le graveur de CD/DVD : C FAT32 Lecteur FIXE D CDFS Lecteur CDROM avec CD F NTFS Lecteur FIXE G NTFS Lecteur FIXE
puis aprés avoir éjécté le CD Bootable : C FAT32 Lecteur FIXE D Lecteur CDROM F NTFS Lecteur FIXE G NTFS Lecteur FIXE
PS1:Fonctionne aussi sous W9x avec d'ailleurs des fonctions en plus.
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Pour info voici une partie du truc (le fichier de commande) : MD_GLECT.BAT
@ECHO OFF SET TEST_NT=%OS% IF "%TEST_NT%"=="" GOTO W9X_1 SET LDOSe GOTO Boucle :W9X_1 SET LDOS=A :Boucle IF "%LAFF%"=="Z" GOTO Quitter IF "%LAFF%"=="90" GOTO Quitter SET LAFF=%LDOS% IF "%TEST_NT%"=="" GOTO W9X_2 MD_GLECT.EXE /V /%LDOS% SET /A "LDOS=%LDOS%+1" GOTO Suite :W9X_2 MD_GLECT.EXE /V /_LDOS :Suite SET TXT=Lecteur RAMDISK Bootable IF ERRORLEVEL 222 GOTO Boot SET TXT=Lecteur FIXE Bootable IF ERRORLEVEL 220 GOTO Boucle SET TXT=Lecteur CDROM avec CD Bootable IF ERRORLEVEL 217 GOTO Boot SET TXT=Lecteur AMOVIBLE avec MEDIA Bootable IF ERRORLEVEL 216 GOTO Boot IF ERRORLEVEL 214 SET TXT=Lecteur RAMDISK IF ERRORLEVEL 212 SET TXT=Lecteur FIXE IF ERRORLEVEL 209 SET TXT=Lecteur CDROM avec CD IF ERRORLEVEL 208 SET TXT=Lecteur AMOVIBLE avec MEDIA IF ERRORLEVEL 84 SET TXT=Lecteur FIXE (Erreur de Lecture) IF ERRORLEVEL 82 SET TXT=Lecteur RESEAUX IF ERRORLEVEL 81 SET TXT=Lecteur CDROM IF ERRORLEVEL 80 SET TXT=Lecteur AMOVIBLE GOTO Boucle :Boot SET LDOS=%LAFF% IF NOT "%TEST_NT%"=="" GOTO Boucle MD_GLECT.EXE BOOT_%LDOS%.BIN /_LDOS GOTO Boucle :Quitter SET TEST_NT SET LDOS SET LAFF SET TXT=
rm
Le dimanche 6 avril 2008 à 12:32, CriCri a écrit :
Salut Enzba
rm a écrit :
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord. Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
http://www.autoitscript.com/autoit3/docs/intro/compiler.htm semble indiquer que l'interpréteur, le script (ainsi que d'éventuels fichiers embarqués) sont compressés (UPX apparemment) dans un exécutable. C'est donc bien une conversion/compression (que je comparerais plus à la création d'une archive auto-décompactable) plutôt qu'une compilation. Si la conversion n'est pas chiffrée avec un mot de passe, il est d'ailleurs possible de sortir le script source de l'exe via l'outils Exe2Aut fourni ;)
Bon dimanche
Merci, à toi z'aussi.
PevPev
@+ -- rm
Le dimanche 6 avril 2008 à 12:32, CriCri a écrit :
Salut Enzba
rm a écrit :
Justement, AutoIt permet de créer des scripts "compilés" (on va dire
encapsulés) sous forme d'exécutable autonomes qui normalement ne
necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord.
Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
http://www.autoitscript.com/autoit3/docs/intro/compiler.htm semble indiquer
que l'interpréteur, le script (ainsi que d'éventuels fichiers embarqués)
sont compressés (UPX apparemment) dans un exécutable. C'est donc bien une
conversion/compression (que je comparerais plus à la création d'une archive
auto-décompactable) plutôt qu'une compilation.
Si la conversion n'est pas chiffrée avec un mot de passe, il est d'ailleurs
possible de sortir le script source de l'exe via l'outils Exe2Aut fourni ;)
Le dimanche 6 avril 2008 à 12:32, CriCri a écrit :
Salut Enzba
rm a écrit :
Justement, AutoIt permet de créer des scripts "compilés" (on va dire encapsulés) sous forme d'exécutable autonomes qui normalement ne necessitent rien d'autre pour faire leur petit boulot.
Ah! d'accord. Ils sont encapsulés dans quel genre d'exécutable? (VB, VC...?)
http://www.autoitscript.com/autoit3/docs/intro/compiler.htm semble indiquer que l'interpréteur, le script (ainsi que d'éventuels fichiers embarqués) sont compressés (UPX apparemment) dans un exécutable. C'est donc bien une conversion/compression (que je comparerais plus à la création d'une archive auto-décompactable) plutôt qu'une compilation. Si la conversion n'est pas chiffrée avec un mot de passe, il est d'ailleurs possible de sortir le script source de l'exe via l'outils Exe2Aut fourni ;)
Bon dimanche
Merci, à toi z'aussi.
PevPev
@+ -- rm
CriCri
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
Ayé - il y a maintenant 'testdisk' qui contrôle correctement la présence d'un lecteur prêt avec un média accessible dedans - sans erreur si vide.
Je vais quand même laisser 'testdrive' qui teste pour l'existence d'un lecteur physique connecté au système, prêt ou pas - les deux pourraient être utiles selon ce qu'on cherche à faire.
Bon dimanche 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
Michel_D a écrit :
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon
portable qui n'a aucun CD/DVD.
Ayé - il y a maintenant 'testdisk' qui contrôle correctement la présence
d'un lecteur prêt avec un média accessible dedans - sans erreur si vide.
Je vais quand même laisser 'testdrive' qui teste pour l'existence d'un
lecteur physique connecté au système, prêt ou pas - les deux pourraient
être utiles selon ce qu'on cherche à faire.
Bon dimanche
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
Pas encore au point car il m'indique Ok pour le lecteur de DVD de mon portable qui n'a aucun CD/DVD.
Ayé - il y a maintenant 'testdisk' qui contrôle correctement la présence d'un lecteur prêt avec un média accessible dedans - sans erreur si vide.
Je vais quand même laisser 'testdrive' qui teste pour l'existence d'un lecteur physique connecté au système, prêt ou pas - les deux pourraient être utiles selon ce qu'on cherche à faire.
Bon dimanche 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
CriCri
Michel_D a écrit :
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Félicitations! - j'avais pensé à ça un instant mais je n'ai pas poursuivi dans cette voie parce que je pensais que ça risquerait d'être problématique sous XP.
-- 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
Michel_D a écrit :
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Félicitations! - j'avais pensé à ça un instant mais je n'ai pas
poursuivi dans cette voie parce que je pensais que ça risquerait d'être
problématique sous XP.
--
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
PS2:J'avais principalement utilisé des fonctions DOS (int 0x21).
Félicitations! - j'avais pensé à ça un instant mais je n'ai pas poursuivi dans cette voie parce que je pensais que ça risquerait d'être problématique sous XP.
-- 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