Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [C] capire se il lettore CD è aperto o chiuso

    ciao ragazzi!
    ho scritto un programma che apre un unità cd (nel senso che fa proprio uscire lo sportello) e volendo, lo chiude anche...ma a me serve sapere se l'unità è aperta o chiusa, che funzione uso?ho cercato nelle platform sdk, ma evidentemente ho cercato male...qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Ma ... a cosa ti serve sapere se e' chiusa o aperta ??

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    posta il codice che hai scritto, son curioso.

  4. #4
    codice:
    #include <windows.h>
    #include <mmsystem.h>
    #include "resource.h"
    
    void CDRomOpen(int bOpenDrive, char *drive);
    
    int main(){
        //dichiara l'icona
    	WNDCLASSEX wc;
    	char drives[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //possibili unità
    	char d_drive[3]="::";
    	int i,esci=0;
    
        //la carica
    	wc.hIcon= LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON));
    
        for(i=0;drives[i]!='\0' && esci==0;++i){
            d_drive[0]=drives[i]; //cambio ogni volta la lettera
            if(GetDriveType(d_drive)==DRIVE_CDROM)
                    esci=1; //cambia il flag ed esce dal ciclo
        }
        //apro il cd
        CDRomOpen(1,d_drive); //1-apre, 0-chiude
    	return 0;
    }
    
    void CDRomOpen(int bOpenDrive, char *drive)
    {
    	MCI_OPEN_PARMS open;
    	DWORD flags;
    
    	ZeroMemory(&open, sizeof(MCI_OPEN_PARMS));
    
    	open.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
    	open.lpstrElementName = drive;
    
    	//flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE;
    	flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID;
    
    	if (!mciSendCommand(0, MCI_OPEN, flags, (DWORD) &open))
    	{
    		mciSendCommand(open.wDeviceID, MCI_SET, (bOpenDrive) ? MCI_SET_DOOR_OPEN : MCI_SET_DOOR_CLOSED, 0);
    		mciSendCommand(open.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
    	}
    }
    beh, mi serve sapere se è aperta o chiusa così quando lo si avvia, il programma capisce se deve chiuderla o aprirla XD

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Ti ringrazio.

    edit: resource.h dove lo posso trovare?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,476
    Originariamente inviato da =tW=
    beh, mi serve sapere se è aperta o chiusa così quando lo si avvia, il programma capisce se deve chiuderla o aprirla XD
    Cioe', se e' aperto il tuo programma lo chiude e se e' chiuso lo deve aprire?

  7. #7
    resource.h è solo il file che mi serve per caricare l'icona, se lo commenti te lo compila correttamente

    si, esattamente quello, se è aperto lo chiude, altrimenti lo apre...ma come farlo?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,260
    codice:
    #include <windows.h>
    
    MCIERROR CdromDoor (char driveLetter, BOOL bOpen)
    {
        MCIERROR mcierr;
        CHAR     cmd[64];
    
        wsprintf (cmd, "open %c: type cdaudio alias cddoordev wait", driveLetter);
        mcierr = mciSendString (cmd, NULL, 0, NULL);
        
        if (mcierr != 0)
            return mcierr;
    
        wsprintf (cmd, "set cddoordev door %s wait", bOpen ? "open" : "closed");
        mcierr = mciSendString (cmd, NULL, 0, NULL);
        mciSendString ("close cddoordev", NULL, 0, NULL);
    
        return mcierr;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    è la stessa cosa del mio, se rilancio il programma, non chiude l'unità precedentemente aperta...come possiamo fare?

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Originariamente inviato da =tW=
    resource.h è solo il file che mi serve per caricare l'icona, se lo commenti te lo compila correttamente
    id_myicon a riga 15 risulta così non dicharato...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.