RFID Mifair 2K Ereignisse über WndProc

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von FormFollowsFunction.

    RFID Mifair 2K Ereignisse über WndProc

    Neu

    Hallo Leute,

    ich möchte für ein Projekt eine Komponente entwickeln die verschiedene Smartcard Typen ausliest.

    Dabei ist es wichtig das sowohl Katendaten geschrieben als auch gelesen werden. Da die Authentifizierung an eine Unterschrift über ein Signaturpad jedes mal erfolgen soll. Muss die Karte aufgelegt werden.
    Bisher fange ich den Zustand über die Message "WM-DEVICECHANGE" ab, was bisher gut Funktioniert.

    Jetzt stellte ich während einer Präsentation fest das nach einiger Zeit kein WM_DEVICECHANGE mehr auftrat.... Was mich stuzig machte....
    Ist das vielleicht der falsche Weg?!




    CodeTags korrigiert; bitte zukünftig darauf achten, das richtige CodeHighlighting zu verwenden ~VaporiZed

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

    Neu

    Willkommen im Forum. :thumbup:

    Bqueisser schrieb:

    Jetzt stellte ich während einer Präsentation fest das nach einiger Zeit kein WM_DEVICECHANGE mehr auftrat....
    Wie genau äußert sich das?
    Ich gehe mal aus, dass Du das nicht im Debug-Modus getestet hast.
    Debuggen, Fehler finden und beseitigen
    Wenn Du Deinen Code ein wenig aufräumst, sieht er so aus:

    VB.NET-Quellcode

    1. Protected Overrides Sub WndProc(ByRef m As Message)
    2. ' Auf Laufwerksänderungen im System reagieren
    3. Try
    4. If m.Msg = WM_DEVICECHANGED Then
    5. If Init() Then ' der neue Zustand
    6. Dim B = readerFunctions_.getCardSerialNumber
    7. Label1.Text = "Karte aufgelegt..." + BitConverter.ToInt32(B, 0).ToString
    8. InitReader = True
    9. Else
    10. Label1.Text = "Karte getrennt..."
    11. InitReader = False
    12. End If
    13. End If
    14. Catch ex As Exception
    15. End Try
    16. MyBase.WndProc(m)
    17. End Sub
    Probier mal diese erweiterte Methode, wo zwischen An- und Abstecken unterschieden wird:
    Usb-Anschlüsse überwachen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Neu

    Hallo RodFromGermany,

    erst einmal vielen Dank!!!!!!!!!!!!! ... für die Zeit deiner Antwort.

    Zunächst: Die doppelte Abfrage (mit wiederholtem INIT dem Problem der Gerätetrennung geschuldet und hat keine Relevanz, Trotzdem Danke)

    Sehr interessant ist der Verlinkte Thread mit der Überwachung der USB Anschlüsse, leider empfange ich vom Reader (Treiber) aber immer nur &H7 Egal ob Kartenleser Getrennt, oder Karte entfernt!

    Dieser Part aus dem Source läuft nicht bei mir:

    VB.NET-Quellcode

    1. ​If msg.Msg <> WM_DEVICECHANGE Then Return
    2. Dim remark = ""
    3. Select Case msg.WParam
    4. Case DBT_DEVICEARRIVAL
    5. remark = "add drive: " & DEV_BROADCAST_VOLUME.FromPointer(msg.LParam).GetDriveChar
    6. Case DBT_DEVICEREMOVECOMPLETE
    7. remark = "remove drive: " & DEV_BROADCAST_VOLUME.FromPointer(msg.LParam).GetDriveChar
    8. End Select

    Neu

    Bqueisser schrieb:

    Dieser Part aus dem Source läuft nicht bei mir:
    Wie äußert sich das?
    Schon mal mit nem Haltepunkt probiert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!