begin process at 2012 05 29 10:53:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

Ejection cd


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ejection cd

lundi 26 septembre 2005 à 16:35:14 | Ejection cd

tibob51

Membre Club
Bonjour a tous,
Quelle fonction permet e détecté l'ejection d'un cd (et de renvoyé lequel es ce)?
Merci pour votre aide.
lundi 26 septembre 2005 à 17:51:45 | Re : Ejection cd

satellite34

précise un peu :

Quelle librairie????
parce qu'en assembleur ca risque d'etre la misere lol;

@+;
ROOT_DIEU.
lundi 26 septembre 2005 à 17:57:41 | Re : Ejection cd

hilairenicolas

salut
tu peux utiliser les IOCTL


#include <windows.h>

// Envoie un IOCTL simple vers le périphérique donné
bool SendSimpleIOCTL( LPCTSTR DeviceName, DWORD IoControlCode )
{
    // ouvrir le driver associé au périphérique donné
    HANDLE hDevice = ::CreateFile(
        DeviceName,
        GENERIC_READ,
        0,
        0,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        0 );
    if ( hDevice == INVALID_HANDLE_VALUE )
    {
        return false;
    }

    // envoyer l'IOCTL
    DWORD unused;
    BOOL res = ::DeviceIoControl(
        hDevice,
        IoControlCode,
        NULL,
        0,
        NULL,
        0,
        &unused,
        NULL );

    // libérer les ressource
    ::CloseHandle( hDevice );

    return res == TRUE;
}

// ouvre le tiroir d'un CD-ROM, ou autre...
bool EjectDevice( LPCTSTR DeviceName )
{
    return SendSimpleIOCTL(
        DeviceName,
        IOCTL_STORAGE_EJECT_MEDIA );
}

// ferme le tiroir d'un CD-ROM, ou autre...
bool CloseDeviceDoor( LPCTSTR DeviceName )
{
    return SendSimpleIOCTL(
        DeviceName,
        IOCTL_STORAGE_LOAD_MEDIA );
}

int main()
{
    // le disque peut être désigné soit via son nom logique (par exemple "D:")
    // soit par son nom de périphérique ("CdRom0")
    // Dans les deux cas, ils doivent être précédés de "\\.\", ce qui donne
    // "\\.\D:" et "\\.\CdRom0". Mais en C/C++ il faut doubler les antislash,
    // soit au final "\\\\.\\D:" et "\\\\.\\CdRom0";
    EjectDevice( "\\\\.\\D:" );
    CloseDeviceDoor( "\\\\.\\CdRom0" );
}

lundi 26 septembre 2005 à 18:13:09 | Re : Ejection cd

Arnotic

Administrateur CodeS-SourceS
dans mes sources, celle concernant la gravure, expose un exemple d'ejection de cd.

@+
Arnotic,
Admin CS,
Développeur chez Néos SDI,
MVP Visual C++
lundi 26 septembre 2005 à 18:54:17 | Re : Ejection cd

Joky

Membre Club
mciSendString("Set cdaudio door open wait", 0, 0, 0);

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_mcisendstring.asp

if(!Meilleur("Joky")) return ERREUR;

lundi 26 septembre 2005 à 19:25:40 | Re : Ejection cd

tibob51

Membre Club
Merci de vos réponses (elles me seront utiles par la suite),mais en fait c comment voir quand la porte du lecteur s'ouvre que je voulais,j'ai pensé utilisé les messages de windows (WM_DEVICECHANGE) le problème étant que quelque soit le "device" (clef usb ect...) windows envoi ce message et j'ai as trouvé comment reconnaitre qui est le "device"
Merci
lundi 26 septembre 2005 à 19:32:05 | Re : Ejection cd

Joky

Membre Club
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_mm_mcinotify.asp

Regarde un peu les messages, j'suis pas sur :)

if(!Meilleur("Joky")) return ERREUR;

vendredi 30 septembre 2005 à 14:06:01 | Re : Ejection cd

tibob51

Membre Club
Ma foi je suis allé voir,mais je n'ai rien trouvé de vraiment intérressant,le seul message qui pourrait peut etre m'etre utile c'est "MCIWNDM_GETMOD" mais je suis même pas sur,de plus j'ai un problème avec l'inclusion du .h (voir le sujet "Des erreurs dans les fichier d'en tete???")
Donc voili pour l'instan c o point mort.
vendredi 30 septembre 2005 à 14:06:04 | Re : Ejection cd

tibob51

Membre Club
Ma foi je suis allé voir,mais je n'ai rien trouvé de vraiment intérressant,le seul message qui pourrait peut etre m'etre utile c'est "MCIWNDM_GETMOD" mais je suis même pas sur,de plus j'ai un problème avec l'inclusion du .h (voir le sujet "Des erreurs dans les fichier d'en tete???")
Donc voili pour l'instan c o point mort.


Cette discussion est classée dans : cd, ejection


Répondre à ce message

Sujets en rapport avec ce message

ejecter un CD [ par Gô ] Bonjour,J dois faire un pity programme pour l'ecole de simulation de parcmétre avec différent tarif, ... (avec des class en plus) et j'aimerais bien q La programmation en C [ par bip54fl ] Comment faire un programme pour faire "une base de donné" pour la gestion des cd en faisant:1° encoder les cd en utilisant 1 tableau de structure (ave SYSTEME D'EXPLOITATION [ par nilufacou ] Je sais qu'il existe un et même plusieur système d'exploitation (de type Linux) qui sont sur un cd-rom et on boote dessus. Pas besoin de disque dur sa prb de récupération [ par benb78 ] bonjour à tous j'ai un problème et j'éspère que vous allez pouvoir m'aider, alors voila:J'aimerai pouvoir faire un listing (dans un fichier) de toutes verouiller le tiroir du cd [ par Slider ] Bonjourje cherche deux API permetant de verouiller le tiroir du lecteur cd et l'autre permettant de savoir si qq'un essaye tout de même d'ejecter le d micro, cd et line [ par SmallToad ] -------------------------SmallToadProgrammeur C++, java, PHP, etc. ouverture du lecteur CD ? [ par stjo ] Comment puis-je faire pour ouvrir le lecteur de mon programme comme avec VB6 en Dev C++, VC++ ou Gtk+ ?TymkMerci d'avance Livre Atelier Visual C++ édition 2001 [ par guiguimac ] Bonjour,je viens d'acheter en super bradé à la fnac un bouquin microsoft : atelier visual c++ édition de 2001. le pbm c t que super bradé car sans le Urgent : CD livre Visual C++ [ par guiguimac ] Bonjour,je suis à la recherche du CD correspondant au livre suivant :Atelier Visual C++ 6.0 édition 2001 MicrosoftPressj'ai acheté une version toute p pb avec System() [ par salley ] Voila j'aimerais executer dans mon code les commandes suivant sous MS-DOS:cd..cd..cd th\scheduler\Debugscheduler reportfinal.txtsc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,145 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales