Newsgroup: it.comp.lang.visual-basic
Titolo: CD-ROM

Salve a tutti....
averi una domanda, come posso ricavare dal registo di configurazione 
l'unità CD-ROM ???
ciao e grazie a tutti 
Marco S.
PS. Buona notte a tutti !!!

 l'unità CD-ROM ???
Non so se nel registro di configurazione c'è una chiave che faccia al caso
tuo.
Però usando questa mia funzione (GetCDRomDrive) otterrai comunque la lettera
dell'unità CD-ROM se l'utente ne ha uno installato, altrimenti otterrai una
stringa vuota.
----------------------------
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA"
(ByVal Drive As String) As Long
Public Enum drDriveType
   drvUnknown = 0
   drvRimovibile = 2
   drvFixedDisk = 3
   drvRemoteDrive = 4
   drvCDRom = 5
   drvRamDrive = 6
End Enum
Public Function GetCDRomDrive() As String
   Dim strDrive As String
   Dim intUnità As Integer
   intUnità = Asc("A")
   Do
      strDrive = Left$(Trim$(Chr$(intUnità)), 1) + ":\"
      If GetDriveType(strDrive) = drvCDRom Then
'         Unità CD ROM trovata!
         GetCDRomDrive = Chr$(intUnità)
         Exit Function
      End If
      intUnità = intUnità + 1
   Loop Until intUnità = Asc("Z") + 1
'   Sul computer non è presente nessuna unità CD ROM
   GetCDRomDrive = ""
End Function
----------------------------

 ciao e grazie a tutti
Se proprio vuoi ricavarla dal registry devi cercare in
 HKEY_LOCAL_MACHINE\Enum
Qui troverai divisi per categoria tutte le periferiche del sistema.
Praticamente le stesse che vedi quando dall'icona Sistema del pannello di
controllo.
Tra queste devi cercare quelle voci che hanno il valore Class="CDROM".
Secondo me ti conviene scrivere una procedura ricorsiva che scorre questo
ramo del registry.
Spero di esserti stato utile
Ciao
--
Nino Stella
Inteldata Srl
email: 
nino...@tin.it

 ramo del registry.
Ciao Nino,
Io non sono daccordo con questa soluzione, per due motivi:
1) Se per esempio il CD-ROM non è più presente sulla macchina in questione
(infatti la mia unità CD-ROM si è rotta e ho dovuto portarla in riparazione,
ma nel mio registro di configurazione risulta ancora!), con una scansione di
quella chiave del registro di configurazione, non si ha a disposizione
questa informazione che magari potrebbe essere utile.
2) Se l'utente ha cambiato CD-ROM senza disinstallare per bene quello
precedente (...si sa che la specialità dell'utente medio è complicare la
vita del programmatore medio...) risultano entrambi nel registro di
configurazione! (mi è capitato più volte di trovare una situazione del
genere nei registri di configurazione dei miei clienti).
Quindi se l'obbiettivo di Marco S. è unicamente quello di ricavare la
lettera dell'unità CD-ROM a mio parere conviene usare la funzione
(GetCDRomDrive) che ho postato precedentemente. Altrimenti, come non
detto...
 __     __
<o>  <o>
      []
  \____/   ......(Ciao!)
Pasquale Minerva
mine...@libero.it

 genere nei registri di configurazione dei miei clienti).
Hai perfettamente ragione, sono daccordo con te.
Infatti la mia risposta a Marco S. cominciava con le testuali parole:
"Se proprio vuoi ricavarla dal registry....".
Se c'è una funzione dedicata a questo perchè stare a girare nel registry?
Certo è che se invece del Cd-Rom stai cercando altre informazioni non hai
altra scelta. A questo proposito ho inviato al WebMaster del sito comune una
classe VB da me sviluppata che permette di leggere dal Registry una serie di
informazioni tra cui anche la percentuale di utilizzo della CPU.
Spero che venga inserita nell'area download.
In ogni caso comunque, è vero quello che dici riguardo alla permanenza di
vecchie configurazioni nel registry, però è anche possibile verificare quali
sono le periferiche effettivamente ancora installate.
Altrimenti la funzione Pannello di Controllo - Sistema - Gestione
Periferiche come farebbe?
