[VB.NET] Riconoscere dispositivo usb con nome periferica

sabato 29 settembre 2012 - 16.39

Cobra47 Profilo | Newbie

Ciao a tutti ragazzi e complimenti per il sito,
sono nuovo del forum ed alle prese con Vb.net
Volevo chiedervi, esiste un metodo per comunicare e lavorare con una periferica "cercandola" solo per nome? Mi spiego meglio tramite anche l'esempio sottostante.

Ho provato con questo metodo attraverso l'uso di SerialPort ma, naturalmente, cambiando fisicamente la porta del dispositivo (è collegato tramite USB), cambia anche il valore COM della periferica (per esempio, da COM5 diventa COM7), mandando in errore il programma:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Dunque la mia esigenza è, siccome dovrei comunicare col dispositivo, esiste un metodo che, nel caso in cui si avesse esigenza di cambiare porta USB, il programma riesca a trovare la periferica automaticamente e senza problemi? Come per esempio avviene quando si collega un cellulare ed il relativo programma lo riconosce da qualsiasi USB connesso. Vi ringrazio tutti in anticipo

Vinsent Profilo | Senior Member

Ho cercato di fare qualcosa di simile...ma dalle mie ricerche credo di aver capito che le porte usb sono COM emulate e con 'My.Computer.Ports.SerialPortNames.Count' non sono viste...e bisogna usare delle API o 'System.Management.ecc'...troppa roba per me che programmo per hobby...
Comunque, io avevo bisogno di verificare la connessione usb di una chiavetta, quindi, vista come disco esterno ed ho risolto con un timer che verifica i drives e se ne trova uno con il nome impostato avvia il programma, più o meno così:
Private Sub tmr_tick() Handles Timer1.Tick For a = 0 To My.Computer.FileSystem.Drives.Count - 1 If My.Computer.FileSystem.Drives(a).DriveType.ToString = "Removable" Then If My.Computer.FileSystem.Drives(a).VolumeLabel = "nome chiavetta" Then Timer1.Stop() 'avvio Else End If End If Next End Sub

ciao

Cobra47 Profilo | Newbie

Innanzitutto mille grazie per avermi risposto e per avermi postato l'esempio , però vorrei essere ancora più preciso, in modo tale che puoi e potete aiutarmi di più . In particolare, avrei bisogno di quel metodo perchè dovrei comunicare con un cellulare connesso tramite bluetooth e viene riconosciuto come modem in "COM5". Ovviamente, se sposto fisicamente l'ingresso USB della chiavetta bluetooth, il modem (cellulare) automaticamente verrà riconosciuto in "COM6" (tanto per dare un esempio) mandando naturalmente in crash l'applicazione. Quindi, vorrei sapere, è possibile "chiamare" direttamente il modem (intendo dire inserire nel codice di comunicazione il nome della periferica, in questo caso "Nokia 5200") in modo tale da non riscontrare più simili problemi?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5