USB Geräte der Fritzbox 7170 über UPNP abfragen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Lost-Ha[n]f-PHP.

    USB Geräte der Fritzbox 7170 über UPNP abfragen

    Moin Leutz...

    Ich hoffe man kann mir bei meinem kleinen Prob helfen...

    Ich möchte mit einem kleinen Tool die angeschlossenen USB geräte an der Fritzbox 7170 ermitteln.

    Die Anfrage an die Box per UPNP klappt soweit auch. Bis auf das ich keine Ausgabe bekomme

    VB.NET-Quellcode

    1. Private Sub USBPlugListToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles USBPlugListToolStripMenuItem.Click
    2. 'Anzeige möglicher USB Geräte
    3. On Error GoTo 0
    4. Const cUDN = "uuid:75802409-bccb-40e7-8e6c-fa095ecce13e-00150CD7782E"
    5. Const cURN = "urn:any-com:serviceId:any1"
    6. Const cACTION = "GetInfo"
    7. Const cVARIABLE = "UsbPluglist"
    8. Dim oFindDevice As UPNPLib.UPnPDeviceFinder
    9. Dim oDevice As UPNPLib.UPnPDevice
    10. Dim oServices As UPNPLib.UPnPServices
    11. Dim oService As UPNPLib.UPnPService
    12. Dim vIn(0) As Object
    13. Dim vOut(0) As Object
    14. Dim sValue As String
    15. Dim iRet As Integer
    16. oFindDevice = New UPNPLib.UPnPDeviceFinder
    17. oDevice = oFindDevice.FindByUDN(cUDN)
    18. If Not oDevice Is Nothing Then
    19. oServices = oDevice.Services
    20. If Not oServices Is Nothing Then
    21. oService = oServices.Item(cURN)
    22. If Not oService Is Nothing Then
    23. oService.AddCallback(iRet)
    24. oService.InvokeAction(cACTION, vIn, vOut)
    25. System.Threading.Thread.Sleep(3000)
    26. sValue = oService.QueryStateVariable(cVARIABLE)
    27. Label3.Text = (sValue)
    28. If oService Is Nothing Then
    29. Label3.Text = "Keine Geräte erkannt"
    30. End If
    31. End If
    32. End If
    33. End If
    34. End Sub


    Ich denke mal das der Code soweit Richtig ist. Normalerweise sollte es so laufen das wenn keine Geräte angeschlossen sind ja eigenetlich auch nix kommt.

    VB.NET-Quellcode

    1. If oService Is Nothing Then Label3.Text = "Keine Geräte erkannt" End If


    Doch auch hier passiert nix.

    Ich hoffe das es hier jemanden gibt der mir da weiterhelfen kann...

    Greetz Deep
    Erst fragst du ab ob es NICHT leer ist und in dieser Abfrage dann wieder ob es DOCH leer ist, was ja völlig unlogisch ist und nie eintreffen wird. Versuch es mal mit einem ELSE:

    VB.NET-Quellcode

    1. If Not oService Is Nothing Then
    2. oService.AddCallback(iRet)
    3. oService.InvokeAction(cACTION, vIn, vOut)
    4. System.Threading.Thread.Sleep(3000)
    5. sValue = oService.QueryStateVariable(cVARIABLE)
    6. Label3.Text = sValue
    7. Else
    8. Label3.Text = "Keine Geräte erkannt"
    9. End If

    If oService Is Nothing Then Label3.Text = "Keine Geräte erkannt" End If
    "End If" wird nur benötigt, wenn deine If-Anweisungen über mehrere Zeilen gehen, was hier nicht der Fall ist
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Ändert aber nix an der tatsache das ich weiter hin keine ausgabe bekomme...

    Was heißt keine Ausgabe? Bekommst du die Meldung "Keine Geräte erkannt" oder einfach einen Null-String? Bist du im Debug-Modus Schritt für Schritt durchgelaufen, ab welcher Zeile es nicht mehr stimmt?
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Ich bekomme einfach nur nen null string....

    Selbst "Keine Geräte erkannt" wird nicht angezeigt.

    Hab das prog oft genug im Debug Modus getartet. Finde aber keinen Fehler....
    Die angaben zu UPNP stimmen alle. Hab die Verschiedensten UUID´s und URN´s probiert... sobald eine Variable oder Action zu den URN´s nicht vorhanden ist kommt eine Fehlermeldung...

    Der UPNP befehle USBPluglist wird auch ganz sicher von der FB unterstützt...


    Greetz Deep
    Hallo,

    was passiert denn, wenn du mal um die ganze Sache einen Try-Catch-Block setzt?

    Könnte es nicht sein, dass dein Programm einfach zum Ende springt und irgendwo nicht mehr weiter macht (Bezug auf: On Error GoTo 0)?
    Vielleicht wirft irgendwas ja noch einen Fehler.

    Dann kannst du das 'On Error...' auch weglassen.