Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C] driver attivo

  1. #1
    Utente di HTML.it L'avatar di zaion
    Registrato dal
    Mar 2002
    Messaggi
    258

    driver attivo

    Ho realizzato un programma in c ma all'interno di esso mi serve
    capire se un determinato driver è presente e pronto.

    In pratica voglio sapere se in questo momenti nel driver floppy
    è presente un dischetto o meno.

    Oppure voglio verificare se nel computer in questione esiste o meno
    il driver identificato con la lettere "E" per esempio.

    Io non ci sono riuscito perchè mi imbatto in errori alquanto strani
    al momenti di esecuzione.

    Se qualcuno è riuscito a risolvere questo problema mi interesserebbe
    sapere come.

    Grazie By Zaion
    bye bye

  2. #2
    Se sei lo zaion che conosco io mi sa che ti sei perso un 3d uguale che hai fatto tempo fa a me (ricordi?)... c'è anche la risposta completa, con tanto di codice, di un mito della programmazione...

    Topolin, Topolin, viva Topolin!

  3. #3
    Utente di HTML.it L'avatar di zaion
    Registrato dal
    Mar 2002
    Messaggi
    258
    Forse...

    Però non funzionava come dovrebbe.
    Ovvero se per caso non c'è un dischetto nell'unità floppy prima il
    sistema operativo mi da un po' di errori vari e poi, quando ritorna
    il controllo al programma allora rilevo l'errore e lo gestisco come
    voglio.
    Il problema è intercettare l'errore prima che il sistema operativo
    si arrabi!!!
    bye bye

  4. #4
    Sinceramente non ricordo bene il codice di quell'esperto.
    Magari oggi gli do un'occhiata, probabilmente bisogna stare un pò attenti alle eccezioni.

    Topolin, Topolin, viva Topolin!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    40

    ti avevo già risposto

    forse sono stato poco chiaro ma ti avevo già risposto nell'altro tuo recente 3D: la funzione che ti serve è SetErrorMode. e guarda http://msdn.microsoft.com/ se non hai il compilatore originale.

    prova questo codice (naturalmente non l'ho testato):

    codice:
    BOOL IsDriveAReady()
    {
    // Tell the system to NOT display a message box when it fails to find a file...
    
    UINT nOldMode = SetErrorMode(SEM_NOOPENFILEERRORBOX);
    
    HANDLE hFile; 
     
    hFile = CreateFile(
     "\\\\.\\A:",                      // open drive A:
     GENERIC_READ,                     // open for reading 
     FILE_SHARE_READ|FILE_SHARE_WRITE, // MUST also share for writing
     NULL,                             // no security 
     OPEN_EXISTING,                    // existing file only 
     FILE_ATTRIBUTE_NORMAL,            // normal file 
     NULL);                            // no attr. template 
     
    if (hFile == INVALID_HANDLE_VALUE) 
    { 
            // PROCESS ERROR HERE
            return FALSE;
    }
    else
    {
            CloseHandle(hFile);
    }
    
    SetErrorMode(nOldMode);
    return TRUE;
    }

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.