Newsgroup: it.comp.lang.visual-basic
Titolo: Recuperare il numero di porte COMM

è possibile recuperare in VB il numero e il nome delle porte COMM din un PC?
sapreste darmi qualche dritta?
Grazie a tutti in anticipo
--
Ciao
Alfredo

 ha scritto nel messaggio
news:czVLa.134411$lK4.3...@twister1.libero.it...

Imposti un numero di porte comm che sei sicuro di non superare mai, (se è un
computer per uso industriale stai sulle 8 - 10 comm) e fai un controllo
sull'apertura delle porte con un on error resume next, in questo modo conti
le porte che sei riuscito ad aprire ed ecco il numero di porte del tuo pc,
così teoricamente dovrebbe funzionare .
Spero di essere stato d'aiuto
Saluti
CSK

 numero di porte del tuo pc, così teoricamente dovrebbe funzionare .
Faccio così anche io, ma in realtà c'è un problema:
Se una porta Com è presente, ma in quel momento è in uso, si ha un errore
come se non ci fosse proprio.
Inoltre, con i dispositivi NPort Server, è comune mappare le com ben oltre
la decima posizione. Ad esempio, io ho un server 2000 che dialoga con
macchine CNC attraverso un NPort server Moxa mappato su Com11, Com12, Com13
e Com14, e a bordo c'è solo Com1, che però potrebbe essere in uso per il
modem di teleassistenza.
Credo che sia meglio andare a sfogliare qualche Api per vedere se si può
arrivare ad un elenco più affidabile.
Ciao
Alberto

 arrivare ad un elenco piů affidabile.


Allora è possibile ed è possibile fare un po di roba....in più.
Solo che io te l'ho testato con la paralella perchè sul portatile
giustamente non ho seriali e non mi trova nulla
la parola magica è WMI
allora per esempio
un FORM ed un command
Private Sub cmdTest_Click()
   Dim SERVIZI As SWbemServices
   Dim wmiObjSet As SWbemObjectSet
   Dim OBJ As SWbemObject   'CurrentProbe
   Dim itmx As ListItem
   Dim strComputer As String
   strComputer = "."
   On Local Error Resume Next
   Set SERVIZI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
   Set wmiObjSet = SERVIZI.ExecQuery("Select * from Win32_ParallelPort", ,
48)
   ' Set wmiObjSet = SERVIZI.ExecQuery("Select * from Win32_SerialPort", ,
48) 'questa sarebbe la query per le seriali...va cambiato i debug.print
perchè l'object cambia...consulta il link sotto!!!!!
   For Each OBJ In wmiObjSet
    Debug.Print "Description: " & OBJ.Description
    Debug.Print "Device ID: " & OBJ.DeviceID
    Debug.Print "Name: " & OBJ.Name
    Debug.Print "OS Auto Discovered: " & OBJ.OSAutoDiscovered
    Debug.Print "PNP Device ID: " & OBJ.PNPDeviceID
    Debug.Print "Protocol Supported: " & OBJ.ProtocolSupported
   Next
   MsgBox "Ok Fatto!"
End Sub
NEI RIFERIMENTI DEVI AVERE IMPOSTATO
Microsoft WMI Scripting Library io ho la 1.2 e l'ho provato sotto XP pro
TA DAH
per maggiori info e per sapere cosa cercare per le seriali :-?
tel chì!...guarda ed ammira!...si fa per dire
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/ScriptCen
ter/compmgmt/ScrCM72.asp
guarda a sinistra quante info puoi trovare!
Bye man!
;-)
Dai dite se questa non merita di essere una Tip!!!
:-D
--
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 Quotefix e altro:
http://www.martek.it/go.asp?portamia=4
Usr: ICLVB Pw: amici

 Il Wodkino Nazionale č a : 
www.martek.it


 ha scritto nel messaggio
news:yuZLa.34$Mw3...@news1.tin.it...
| Alfredo wrote:
| > č possibile recuperare in VB il numero e il nome delle porte COMM din
| > un PC? sapreste darmi qualche dritta?
| > Grazie a tutti in anticipo
|
| Allora č possibile ed č possibile fare un po di roba....in piů.
| Solo che io te l'ho testato con la paralella perchč sul portatile
| giustamente non ho seriali e non mi trova nulla
| la parola magica č WMI
|
| allora per esempio
| un FORM ed un command
| Private Sub cmdTest_Click()
|    Dim SERVIZI As SWbemServices
|    Dim wmiObjSet As SWbemObjectSet
|    Dim OBJ As SWbemObject   'CurrentProbe
|    Dim itmx As ListItem
|    Dim strComputer As String
|    strComputer = "."
|    On Local Error Resume Next
|    Set SERVIZI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
|    Set wmiObjSet = SERVIZI.ExecQuery("Select * from Win32_ParallelPort", ,
| 48)
|    ' Set wmiObjSet = SERVIZI.ExecQuery("Select * from Win32_SerialPort", ,
| 48) 'questa sarebbe la query per le seriali...va cambiato i debug.print
| perchč l'object cambia...consulta il link sotto!!!!!
|    For Each OBJ In wmiObjSet
|     Debug.Print "Description: " & OBJ.Description
|     Debug.Print "Device ID: " & OBJ.DeviceID
|     Debug.Print "Name: " & OBJ.Name
|     Debug.Print "OS Auto Discovered: " & OBJ.OSAutoDiscovered
|     Debug.Print "PNP Device ID: " & OBJ.PNPDeviceID
|     Debug.Print "Protocol Supported: " & OBJ.ProtocolSupported
|    Next
|
|
|    MsgBox "Ok Fatto!"
|
| End Sub
|
| NEI RIFERIMENTI DEVI AVERE IMPOSTATO
| Microsoft WMI Scripting Library io ho la 1.2 e l'ho provato sotto XP pro
|
| TA DAH
| per maggiori info e per sapere cosa cercare per le seriali :-?
| tel chě!...guarda ed ammira!...si fa per dire
|
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/ScriptCen
| ter/compmgmt/ScrCM72.asp
| guarda a sinistra quante info puoi trovare!
|
| Bye man!
| ;-)
|
|
| Dai dite se questa non merita di essere una Tip!!!
| :-D
|
| --
| Il Wodkino Nazionale č a : 
www.martek.it
