Ouvrir/fermer le lecteur CD avec un bat

Résolu
freeze -  
 LIAMSI3456 -
Bonjour,
quelle est l'instruction qui permet d'ouvrir/fermer le lecteur CD dansun fichier batch BATou autre language supporté par windows (car je ne possède aucun compilateur)
merci
Configuration: Windows XP
Internet Explorer 6.0

24 réponses

  • 1
  • 2
Résumé de la discussion

Le sujet concerne l'ouverture et la fermeture du lecteur CD à partir d'un fichier batch BAT ou d'un autre langage pris en charge par Windows, sans compilateur, sous Windows XP et IE6. Plusieurs contributions évoquent l'utilisation de VBScript chargé depuis le batch, notamment via l'objet WMPlayer.OCX pour éjecter le CD, et l'identification du lecteur avant d'agir. Certains scripts montrent comment ouvrir et fermer le tiroir, tandis que d'autres suggèrent des approches complémentaires avec un exécutable tiers comme nirCMD pour multiplier les actions et contourner les limites intégrées. À noter, VBScript est un langage non compilé exécuté par Windows Script Host, ce qui explique pourquoi ces scripts s'exécutent sans compilateur et peuvent être démarrés depuis un fichier batch.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. thib0787 Messages postés 934 Statut Membre 176
     
    Salut, jai trouver quelque chose,

    tu peut lancer un .vbs depuis ton bat pour ouvrir le lecteur (pas le fermer)

    voici le vbs

    Set oWMP = CreateObject("WMPlayer.OCX.7" )
    Set colCDROMs = oWMP.cdromCollection
    if colCDROMs.Count >= 1 then
    For i = 0 to colCDROMs.Count - 1
    colCDROMs.Item(i).Eject
    Next ' cdrom
    End If
    11
    1. Selim
       
      Merci
      0
  2. hamza_0081 Messages postés 260 Statut Membre 60
     
    salut pour ovrire et puis fermer votre lecteur mais s'il est deja ouvert il le ferme ....
    g trouver ce tuto vbs

    Set oWMP = CreateObject("WMPlayer.OCX.7" )
    Set colCDROMs = oWMP.cdromCollection
    if colCDROMs.Count >= 1 then
    For i = 0 to colCDROMs.Count - 1
    colCDROMs.Item(i).Eject
    Next ' cdrom
    colCDROMs.Item(d).Eject
    End If
    msgbox "hamza votre cd rom est fermer"

    et sur cmd g trouver ce si

    echo off && Cls && Mode 55,5 && Color 4f && Title Open Cd
    Set VBS=%systemdrive%\OpenClose.vbs
    Set VBS1=%systemdrive%\RemoveVBS.vbs
    echo Preparing To Run The Script!
    >> %vbs% Echo Dim ts
    >> %vbs% Echo Dim strDriveLetter
    >> %vbs% Echo Dim intDriveLetter
    >> %vbs% Echo Dim fs 'As Scripting.FileSystemObject
    >> %vbs% Echo Const CDROM = 4
    >> %vbs% Echo On Error Resume Next
    >> %vbs% Echo Set fs = CreateObject("Scripting.FileSystemObject")
    >> %vbs% Echo strDriveLetter = ""
    >> %vbs% Echo For intDriveLetter = Asc("D") To Asc("Z")
    >> %vbs% Echo Err.Clear
    >> %vbs% Echo If fs.GetDrive(Chr(intDriveLetter)).DriveType = CDROM Then
    >> %vbs% Echo If Err.Number = 0 Then
    >> %vbs% Echo strDriveLetter = Chr(intDriveLetter)
    >> %vbs% Echo Exit For
    >> %vbs% Echo End If
    >> %vbs% Echo End If
    >> %vbs% Echo Next
    >> %vbs% Echo MSGBOX "YOUR CD IS: " ^& strDriveLetter,0 + 48,"CDROM=> " ^& strDriveLetter
    >> %vbs% Echo Set oWMP = CreateObject("WMPlayer.OCX.7" )
    >> %vbs% Echo Set colCDROMs = oWMP.cdromCollection
    >> %vbs% Echo colCDROMs.Item(d).Eject
    >> %vbs% Echo A1= msgbox ("Press key To Close Cd" ^& vbcrlf ^& " The Cd Will Close", 0 + 64, "Open Close Cd Tray")
    >> %vbs% Echo colCDROMs.Item(d).Eject
    >> %vbs% Echo set owmp = nothing
    >> %vbs% Echo set colCDROMs = nothing
    >> %vbs% Echo wscript.quit

    start %vbs%
    ping -n 12 127.0.0.1>nul
    TASKKILL /F /T /IM Wscript.exe
    TASKKILL /F /T /IM Wmiprvse.exe

    >> %vbs1% Echo On Error Resume Next
    >> %vbs1% Echo Dim ACT : Set ACT = CreateObject("WScript.Shell")
    >> %vbs1% Echo Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
    >> %vbs1% Echo Loc = ACT.ExpandEnvironmentStrings("%SystemDrive%")
    >> %vbs1% Echo Fso.Deletefile("%VBS%")
    >> %vbs1% Echo Fso.Deletefile(Loc ^& "\CD-Open-Close.cmd")
    >> %vbs1% Echo Fso.Deletefile("%VBS1%")
    >> %vbs1% Echo Set ACT = Nothing
    >> %vbs1% Echo Set Fso = Nothing
    start /w %vbs1%
    exit

    on peut utilise la meme methode dos avec le premier script je teste et si ca marche je vs envoy le code

    @+
    5
    1. Dean76
       
      en vbs il marche super bien merci !

      mais en batch (cmd) avec windows vista ça ne fonctionne pas.
      il m'affiche "Accès Refusé." et Windows ne trouve pas 'I:\OpenClose.vbs'."

      Est-que quelqu'un peut m'aider ?
      0
    2. hamza_0081 Messages postés 260 Statut Membre 60 > Dean76
       
      bon soire
      je ne suit pas un expere et en plus g piqué ce scripte d'un autre forum [désolez je ne me souvien plus du lien]


      tu peut tous simplemelnt suprime si la commande start ds la ligne
      start %vbs% et le scripte sera :





      echo off && Cls && Mode 55,5 && Color 4f && Title Open Cd
      Set VBS=%systemdrive%\OpenClose.vbs
      Set VBS1=%systemdrive%\RemoveVBS.vbs
      echo Preparing To Run The Script!
      >> %vbs% Echo Dim ts
      >> %vbs% Echo Dim strDriveLetter
      >> %vbs% Echo Dim intDriveLetter
      >> %vbs% Echo Dim fs 'As Scripting.FileSystemObject
      >> %vbs% Echo Const CDROM = 4
      >> %vbs% Echo On Error Resume Next
      >> %vbs% Echo Set fs = CreateObject("Scripting.FileSystemObject")
      >> %vbs% Echo strDriveLetter = ""
      >> %vbs% Echo For intDriveLetter = Asc("D") To Asc("Z")
      >> %vbs% Echo Err.Clear
      >> %vbs% Echo If fs.GetDrive(Chr(intDriveLetter)).DriveType = CDROM Then
      >> %vbs% Echo If Err.Number = 0 Then
      >> %vbs% Echo strDriveLetter = Chr(intDriveLetter)
      >> %vbs% Echo Exit For
      >> %vbs% Echo End If
      >> %vbs% Echo End If
      >> %vbs% Echo Next
      >> %vbs% Echo MSGBOX "YOUR CD IS: " ^& strDriveLetter,0 + 48,"CDROM=> " ^& strDriveLetter
      >> %vbs% Echo Set oWMP = CreateObject("WMPlayer.OCX.7" )
      >> %vbs% Echo Set colCDROMs = oWMP.cdromCollection
      >> %vbs% Echo colCDROMs.Item(d).Eject
      >> %vbs% Echo A1= msgbox ("Press key To Close Cd" ^& vbcrlf ^& " The Cd Will Close", 0 + 64, "Open Close Cd Tray")
      >> %vbs% Echo colCDROMs.Item(d).Eject
      >> %vbs% Echo set owmp = nothing
      >> %vbs% Echo set colCDROMs = nothing
      >> %vbs% Echo wscript.quit

      start %vbs%
      ping -n 12 127.0.0.1>nul
      TASKKILL /F /T /IM Wscript.exe
      TASKKILL /F /T /IM Wmiprvse.exe

      >> %vbs1% Echo On Error Resume Next
      >> %vbs1% Echo Dim ACT : Set ACT = CreateObject("WScript.Shell")
      >> %vbs1% Echo Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
      >> %vbs1% Echo Loc = ACT.ExpandEnvironmentStrings("%SystemDrive%")
      >> %vbs1% Echo Fso.Deletefile("%VBS%")
      >> %vbs1% Echo Fso.Deletefile(Loc ^& "\CD-Open-Close.cmd")
      >> %vbs1% Echo Fso.Deletefile("%VBS1%")
      >> %vbs1% Echo Set ACT = Nothing
      >> %vbs1% Echo Set Fso = Nothing
      %vbs1% 'ici la lign qui a ete modifier
      exit





      a premiere vu ton system [os] est installer sur le volume I:\ en abitude le windows est installer sur le volume C:\
      les deux instruction suivante a pour rolle de cré deux variable vbs et vbs1

      Set VBS=%systemdrive%\OpenClose.vbs
      Set VBS1=%systemdrive%\RemoveVBS.vbs

      dont votre cas les variable vbs et vbs1 ont les valeur suite

      vbs=I:\OpenClose.vbs
      vbs1=I:\RemoveVBS.vbs

      la lign suivant :start %vbs%
      fait appelle au fichier dont sont nom est porter sur la variable vbs et comme vbs=I:\OpenClose.vbs
      elle execute le fichier (OpenClose.vbs)

      comme votre syystem ne trouve pas le fichier qui doit etre cree su le I: esseyer de remplacer les lignes

      Set VBS=%systemdrive%\OpenClose.vbs
      Set VBS1=%systemdrive%\RemoveVBS.vbs

      par

      Set VBS=I:\OpenClose.vbs
      Set VBS1=I:\RemoveVBS.vbs

      sa peut que la variable defini par défault %systemRoot% ne soit presante sur la version dos de viste [je ne suis pas sur]

      une autre chose aussi tu peut tous simplemelnt suprime si la commande start ds la ligne
      start %vbs%


      bonne chance j'espre que ca marchera pour toi si no tu suis a votre service :-)


      en fin je peut vous proposer un script plus simple en dos [un batch qui genere un scrit vbs :-)]



      @echo off&&color 0a&& title Ouverture Du lecteur CD-room&& mode 55,5
      set vbs=c:\openCD.vbs 'ou bien I:\openCD.vbs
      echo ouverture du tirroire ...
      >>%vbs% echo Set oWMP = CreateObject("WMPlayer.OCX.7" )
      >>%vbs% echo Set colCDROMs = oWMP.cdromCollection
      >>%vbs% echo if colCDROMs.Count >= 1 then
      >>%vbs% echo For i = 0 to colCDROMs.Count - 1
      >>%vbs% echo colCDROMs.Item(i).Eject
      >>%vbs% echo Next ' cdrom
      >>%vbs% echo colCDROMs.Item(d).Eject
      >>%vbs% echo msgbox " Dean76 votre cd rom est fermer"
      %vbs%
      del %vbs%




      tu peut changer le volume I: par un autre de votre choix !
      0
    3. questionneur
       
      salut hamza;
      dans ton script j'aperçois "ping -n 12 127.0.0.1>nul" est ce que ça fait partir du script pour ouvrir et fermer le lecteur ou c'est une erreur?
      cordialement,
      0
    4. nea
       
      127.0.0.1 c'est un ping local de l'ordinateur la apparemment on souhaite faire un ping sur son propre pc en gros... J'ai la flemme de lire tous le code mais voila...
      0
    5. Gagaouf
       
      Pas mal du tout le sript
      0
  3. freeze
     
    l'ouverture mécanique et fermeture mécanique du lecteur (éjection) qui fait le bruit dzzzzrrrrrrrrrrrrrrrt
    4
  4. hamza_0081 Messages postés 260 Statut Membre 60
     
    salut es que pour lancer votre vbs on doit avoir un compilateur sous xp !!!
    3
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arrial Messages postés 1803 Date d'inscription   Statut Membre Dernière intervention   251
     
    D'accord. Vbscript est un langage non compilé, comme on n'était pas obligé de compiler du QuickBasic pour l'éxécuter. Il fonctionne sous Windows Scripting Host, un interpréteur de scripts pour les systèmes Microsoft Windows, donc sous Windows ‼
    ▼▼▼
    https://www.commentcamarche.net/contents/1187-introduction-a-vbscript
    ▲▲▲

    Truc bon à savoir : je vai caser ça dans mes archives …

    @+
    (tu as vu que tes messages sont postés en double ?)
    3
  7. hamza_0081 Messages postés 260 Statut Membre 60
     
    bon soir , je sais que le problème est résolut mais j'aime a jouté un petit truque génial c le >>nircmd<<
    vous pouvait faire plain de chose comme ouvrir le tiroirs de ton choix rendre un fenêtre transparente ou invisible cacher le desktop le bouton demander !!!!!! fermer meme le moniteur !!!
    faire un screenshote !!!!! et beaucoup d autre chose :-] genial nespas ??
    3
  8. arrial Messages postés 1803 Date d'inscription   Statut Membre Dernière intervention   251
     
    Qu'est-ce que tu entends par ouvrir/fermer ?
    2
  9. arrial Messages postés 1803 Date d'inscription   Statut Membre Dernière intervention   251
     
    Je doute que cmd (remplaçant du DOS) ait ce genre de commande. En tout cas, je n'en connais pas.

    Il faudrait voir dans les fichiers d'autorun de certains CD pour voir comment ils font. Si ça n'est pas compilé.
    2
    1. HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
       
      Ca ne serait pas illogique d'avoir une commande pour cela, mais effectivement, il n'y en a pas de "simple"...

      Alors que sous Linux, il y a une commande eject...

      0
  10. thib0787 Messages postés 934 Statut Membre 176
     
    non, tu entre le code dans un fichier texte et ensuite tu lui met l'extension .vbs
    1
  11. thib0787 Messages postés 934 Statut Membre 176
     
    oui vbs c'est Visual Basic,

    et j'en sais rien moi j'ai Windows XP, et je rentre ce code dans un fichier texte que je renomme en .vbs a la place de .txt et quand je clic dessus le lecteur CD s'ouvre, je cherche pas plus loin !!!
    c'est XP qui doit faire la compilation et l'exécution, ou un truc du genre, tant que sa fonctionne ...
    1
    1. commentaire
       
      non c'est visual basic script, d'où le s à la fin. ;)
      0
  12. hamza_0081 Messages postés 260 Statut Membre 60
     
    [[oui vbs c'est Visual Basic,

    et j'en sais rien moi j'ai Windows XP, et je rentre ce code dans un fichier texte que je renomme en .vbs a la place de .txt et quand je clic dessus le lecteur CD s'ouvre, je cherche pas plus loin !!!
    c'est XP qui doit faire la compilation et l'exécution, ou un truc du genre, tant que sa fonctionne ...]]

    je crois si tu a installer visuel basique ca veut dir que c'est luis qui fait la compilation c logique non ?
    1
  13. hamza_0081 Messages postés 260 Statut Membre 60
     
    genial ca marche chez moi mai je ne sais pas si ca marchera chez n'iporte qui ou pas ?
    car moi g pas installer le visual basic
    ou je peut trouvé des tuto pour ce genre de script
    1
  14. thib0787 Messages postés 934 Statut Membre 176
     
    normalement pas besoin d'installer quelque chose, sa fonctionne sur un pc venant juste d'être reformaté (a vide sans rien d'installer )
    1
  15. hamza_0081 Messages postés 260 Statut Membre 60
     
    salut je me lance sur les vbs et depuis g decouvert des tat de chose la plus marrante c'est c'elle de cree un spam pour envoyer des centenne de message sur un messenger quel que soit skype ou msn yahoo...
    c vraiment cool
    merci les gas
    bye
    1
  16. arrial Messages postés 1803 Date d'inscription   Statut Membre Dernière intervention   251
     
    Salut,

    J'apprends encore quelque chose en fréquentant les forums, merci à vous.
    Dont un fichier cmd *.bat peut lancer un fichier basic, et sans doute pascal, fortran, C, … ?

    Cela peut s'expliquer par le fait que les commandes utilisées sont simples (pas orientées "objet", … ) ne comportent que les premières "démocratisations" du langage machine, pour les quelles ces langages, compilés ou non, ont été créés.

    Encore MERCI ‼

    @+ sur CÇM.
    1
  17. hamza_0081 Messages postés 260 Statut Membre 60
     
    salut arrial
    ce code lance un script ecrit en vbscript qui a l'extention *.vbs et windows l'execute a l'aide du wscript c'est un language interpreté pas comme le pascal qui est compilé par un compilateur comme le turbo
    je doute que on peut le lancer (le pascal) par le cmd je ne sais pas pour fortron ? mais le c et c++ il te faut un cimpilateur pour lancer des scripts par contre le javascript et le pythonscript on peut.........
    a cause du WSH je croie !

    ce script ce n'est pas le mien je lé pique d'un autre forume car g aimer , la facon dont on gere les commandes !!
    1
  18. hamza_0081 Messages postés 260 Statut Membre 60
     
    salut arrial
    ce code lance un script ecrit en vbscript qui a l'extention *.vbs et windows l'execute a l'aide du wscript c'est un language interpreté pas comme le pascal qui est compilé par un compilateur comme le turbo
    je doute que on peut le lancer (le pascal) par le cmd je ne sais pas pour fortron ? mais le c et c++ il te faut un cimpilateur pour lancer des scripts par contre le javascript et le pythonscript on peut.........
    a cause du WSH je croie !

    ce script ce n'est pas le mien je lé pique d'un autre forume car g aimer , la facon dont on gere les commandes !!
    1
  19. zemimi
     
    moi je me suis amusé a dupliquer le code plusieurs centaines de fois comm sa le lecteur s'ouvre tout le temps et si on veut embeter un nul en informatique il suffit d'en faire une tache planifiée
    1
    1. SenVara
       
      Ou tu fais une boucle c'est tellement plus simple
      par exemple:

      iCpt=0
      Do While iCpt=0
      Set oWMP = CreateObject("WMPlayer.OCX.7" )
      Set colCDROMs = oWMP.cdromCollection
      if colCDROMs.Count >= 1 then
      For i = 0 to colCDROMs.Count - 1
      colCDROMs.Item(i).Eject
      Next ' cdrom
      End If
      Loop
      0
      1. LIAMSI3456 > SenVara
         
        Pour faire des loops avec .vbs il faut mettre 'do' au debut et 'loop' à la fin ;)
        0
    2. tonylapatate
       
      ou alors en vbs pour ouvrir il y'a:

      Set oWMP = CreateObject("WMPlayer.OCX.7" )
      Set colCDROMs = oWMP.cdromCollection
      if colCDROMs.Count >= 1 then
      For i = 0 to colCDROMs.Count - 1
      colCDROMs.Item(i).Eject
      Next ' cdrom
      End If

      sans fermer bien sur
      et c'est encore plus simple et tu peux le faire marcher depuis dos!!
      0
    3. anonyme
       
      c'est tres simple tapez sa en .vbs

      Set oWMP = CreateObject("WMPlayer.OCX.7" )
      Set colCDROMs = oWMP.cdromCollection
      if colCDROMs.Count >= 1 then
      For i = 0 to colCDROMs.Count - 1
      colCDROMs.Item(i).Eject
      Next ' cdrom
      X=MsgBox("Vous avez mis le disque?",+16,"Disque")
      For i = 0 to colCDROMs.Count - 1
      colCDROMs.Item(i).Eject
      Next ' cdrom
      End If
      0
    4. anonyme
       
      de rien d'avance
      0
  20. freeze
     
    l'ouverture mécanique et fermeture mécanique du lecteur (éjection) qui fait le bruit dzzzzrrrrrrrrrrrrrrrt
    0
  • 1
  • 2