Prüfen ob Handy am PC angeschlossen ist

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von ronny130286.

    Prüfen ob Handy am PC angeschlossen ist

    Hallo

    ich möchte mir in einer Windowsform anzeigen lassen ob mein Handy am Pc angeschlossen ist oder nicht, im gerätemanage wird das Handy als "Andriod USB Device -> MY HTC " erkannt, num haben ich bis jetzt das Handy via [i]Android Debug Bridge[/i] angesprochen und via Ausgabe der CMD geprüft ob das Handy da ist oder nicht.

    Ich haben mir dann das Ganze auf einen 1sec Countdown gelegt so das im Prinzip alle 1sec geprüft wird ob Handy da oder nicht => hat auch 1a funktioniert was aber nicht so Pralle war, ist die Auslastung die das Programm damit zieht:(

    Nun wollte ich mal erfragen ob man das ganze nicht besser machen kann mittels abfrage ob handy angeschlossen ist bzw. nicht angeschlossen ist. Es sollte dann aber einen Überwachungsfunktion sein

    Für Anregungen oder Hilfen wäre ich sehr dankbar

    peterfido schrieb:

    WMI hat nicht funktioniert? Da gibt es dutzende Beispiele im Netz. Einfach mal nach "wmi usb devices" googlen.


    naja ich habe mich ein wenig im inet belesen bei der WMI Variante soll es ein Problem geben wenn man das Gerät mehrfach an und abzieht das dann das Programm abstürzt,

    mal anders gefragt kann ich nicht die vorhanden AdbWinUSBapi.dll ansprechen?
    Ich bin über Google auf ein Beitrag von MS gestoßen wo man mit einen mitgelieferten Tool vom Visual Studio (Dumpbin) die Ansprechvariablen der Dll auslesen zu kann.
    Hi

    ich habe mich mal mit der Sache etwas weiter beschäftigt, nun bin ich soweit

    Quellcode

    1. Imports System.Management
    2. Function GetDeviceID() as String
    3. Try
    4. Dim MS As ManagementObjectSearcher = New ManagementObjectSearcher("Select * From Win32_PnPEntity WHERE NAME='MY HTC'")
    5. For Each MO As ManagementObject In MS.Get()
    6. For Each Data As PropertyData In MO.Properties
    7. If Data.Name = "Name" Then
    8. DeviceID = Convert.ToString(Data.Value)
    9. Return DeviceID
    10. End If
    11. Next
    12. Next
    13. Catch ex As Exception
    14. Return 0
    15. End Try
    16. End Function
    17. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    18. MsgBox(GetDeviceID())
    19. End Sub


    Hier bekomme ich nun den Wert von meinem Telefon, in meinem Fall => "MY HTC", wie kann ich das nun machen, dass das ganze auch noch überwacht wird spicht ich stecke es an und bekommen die Meldung "My HTC da" und wenn ich es abziehen "MY HTC nicht da"

    EDIT:
    Thema ist noch nicht erledigt bin nur versehentlich auch den Button gekommen :(

    haben mir nun díe Abfrage wenn ein neues gerät am rechner angeschlossen wird auch noch rein programmiert, nur wenn ich die funktion wie oben damit aufruft bekomme ich immer eine Fehlermeldung mit der For Each Schleifen in der Funktion, verstehe nur nich wieso, weil mit dem Button_Click geht es 1a ohne Fehlermeldung

    Quellcode

    1. Imports System.IO
    2. Imports System.Management
    3. Public Class Form1
    4. Private Const WM_DEVICECHANGE As Integer = &H219
    5. Private Const DBT_DEVICEARRIVAL As Integer = &H8000
    6. Private Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004
    7. Protected Overloads Overrides Sub WndProc(ByRef msg As Message)
    8. MyBase.WndProc(msg)
    9. If msg.Msg = WM_DEVICECHANGE AndAlso msg.WParam = DBT_DEVICEARRIVAL Then
    10. If InStr(CheckDevice2(), "0BB4", CompareMethod.Text) Then
    11. Label1.Text = CheckDevice2()
    12. End If
    13. End If
    14. If msg.Msg = WM_DEVICECHANGE AndAlso msg.WParam = DBT_DEVICEREMOVECOMPLETE Then
    15. Label1.Text = CheckDevice2()
    16. End If
    17. End Sub
    18. Function CheckDevice2() As String
    19. Try
    20. Dim Mo As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT PNPDeviceID FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%0BB4%'")
    21. For Each MS As ManagementObject In Mo.Get()
    22. For Each Data As PropertyData In MS.Properties
    23. Return Data.Value
    24. Exit Function
    25. Next
    26. Next
    27. Return False
    28. Catch ex As Exception
    29. Return False
    30. End Try
    31. End Function
    32. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    33. If InStr(Module1.CheckDevice2(), "0BB4", CompareMethod.Text) Then
    34. Label1.Text = Module1.CheckDevice2()
    35. End If
    36. End Sub
    37. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ronny130286“ ()