Hallo zusammen,
ich arbeite gerade an einem kleinen Tool um eine Startumgebung für eine Software zu konfigurieren. Der Benutzer kann dabei verschiedene Versionen, Bibliotheken und Einstellungen auswählen, die dann beim Start entsprechend aufgerufen werden.
Die Software ist Lizenz geschützt, hierbei gibt es 2 Mögliche Lizensierungen.
Zum einen über eine Floating Lizenz per Netzwerk Server, oder Lokal per USB Hardlock
Damit ich beim Aufbau der Umgebung weis, welche Lizenz ich ansteuern muss habe ich nach langem Googeln einen Code gefunden um alle angeschlossenen USB-Geräte per WMI auslesen zu können, und diesen an meine Bedürfnisse angepasst
und rufe diesen dann so auf
Das ganze funktioniert auch Super, nur dauert dies auf meinem kleinen Privatrechner wo nichts angeschlossen ist ca. 10 Sekunden und auf meinem Firmenrechner vo recht viel angeschlossen ist ca. 25 Sekunden, und ich kann den Benutzer beim Start der Software keine 25 Sekunden warten lassen.
Ich suche jetzt eine Möglichkeit quasi ohne lange Wartezeiten zu ermitteln ob das Hardlock angeschlossen ist !!
Hat jemand eine Idee ??
Gruß
Dolzman
ich arbeite gerade an einem kleinen Tool um eine Startumgebung für eine Software zu konfigurieren. Der Benutzer kann dabei verschiedene Versionen, Bibliotheken und Einstellungen auswählen, die dann beim Start entsprechend aufgerufen werden.
Die Software ist Lizenz geschützt, hierbei gibt es 2 Mögliche Lizensierungen.
Zum einen über eine Floating Lizenz per Netzwerk Server, oder Lokal per USB Hardlock
Damit ich beim Aufbau der Umgebung weis, welche Lizenz ich ansteuern muss habe ich nach langem Googeln einen Code gefunden um alle angeschlossenen USB-Geräte per WMI auslesen zu können, und diesen an meine Bedürfnisse angepasst
VB.NET-Quellcode
- Function FindUSBDevice(ByRef str As String) As Boolean
- Dim TempA As String = "Select * from Win32_USBControllerDevice"
- Dim TempB As String = "Select * From Win32_PnPEntity Where DeviceID = '"
- Dim Suche As String = ""
- Try
- Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher(TempA)
- Dim moc As ManagementObjectCollection = mos.Get()
- For Each mo As ManagementObject In moc
- Dim Dependent As String = mo("Dependent").ToString().Replace("""", "")
- Dim Device As String = Dependent.Substring(Dependent.IndexOf("=") + 1)
- Dim Search As ManagementObjectSearcher = New ManagementObjectSearcher(TempB & Device & "'")
- Dim Col As ManagementObjectCollection = Search.Get()
- For Each Items As ManagementObject In Col
- Suche = (Items("Description").ToString())
- If InStr(Suche, str) > 0 Then Return True
- Next
- Next
- Return False
- Catch
- MsgBox("Fehler beim Auslesen der USB Geräte", , "Fehler")
- End Try
- End Function
und rufe diesen dann so auf
Das ganze funktioniert auch Super, nur dauert dies auf meinem kleinen Privatrechner wo nichts angeschlossen ist ca. 10 Sekunden und auf meinem Firmenrechner vo recht viel angeschlossen ist ca. 25 Sekunden, und ich kann den Benutzer beim Start der Software keine 25 Sekunden warten lassen.
Ich suche jetzt eine Möglichkeit quasi ohne lange Wartezeiten zu ermitteln ob das Hardlock angeschlossen ist !!
Hat jemand eine Idee ??
Gruß
Dolzman