Zum Inhalt springen

Zahlentasten "umwandeln" wenn shift gedrückt


Empfohlene Beiträge

Geschrieben

hi

hab mal wieder en Problem ;)

würde gerne die Zahlen auf der Tastatur bei gedrückter Shift Taste umwandeln.

Hab dafür mal die "ToAscii" funktion aus der user32.dll benutzt, leider funktíoniert das umwandeln nur dann wenn mein programm im Vordergrund ist. In einem anderen Fenster wird dann trotzdem aus ! -> 1.

Gibt es noch eine andere Möglichkeit (ausser von Hand umzuwandeln) ?

mfg Desmo

Geschrieben

Zahlen werden doch automatisch bei gedrückster Shifttaste umgewandelt, oder verstehe ich da was falsch?

Geschrieben

hmm ok ich muss es ausführlicher angehen ;)

ich habe mein KeyboardHook das mir jede Tastatureingabe mitgibt. Das heisst ich bekomm erst SHIFT und dann 1. So daraus soll nun aber ! werden ;)

es gibt eine ToAscii Funktion, die funktioniert aber irgendwie leider nicht :(

klar kann ich abfangen wenn shift wieder losgelassen wird. Aber dann müsste ich sagen bei SHIFT + 1 = ! usw... Dann würde das aber bei neuem Tastaturlayout nicht mehr funktionieren!

Geschrieben

Wenn es Dir nur um bestimmte Bereiche geht (sprich nur Zahlen, oder nur Buchstaben) kannst Du ja den Wert mit asc(Char) bestimmen und dann eben den Offset addieren/subtrahieren.

[EDIT]:Eine ToAscii-Funktion kenne ich bei VB6 zumindest nicht.

Geschrieben

Private Declare Function ToAscii Lib "user32" (ByVal uVirtKey As Long, _

ByVal uScanCode As Long, lpbKeyState As Byte, _

lpwTransKey As Long, ByVal fuState As Long) As Long

die da ;)

ok danke ich versuch das mal eben!

Geschrieben

hmm blöd kann meinen beitrag nicht mehr editieren...

alsoooo

ich mache:

Chr(keyascii - 16)

keyascii ist sagen wir mal die 49 (1) und daraus macht er dann die 33 (!)

da ist aber dann das Problem das zum beispiel bei der Zahl 3 (ascii 51), # anstatt § kommt! bei der ami tastatur ist das wohl so, bei der deutschen aber eben nicht ;)

//EDIT:

aber ich sehe eben das es ja für jedes tastatur layout einen scancode gibt! das heisst ich müsste nur den scancode "zurückrechnen". Hast du eine ahnung wie ich den scancode benutzen kann?

Geschrieben


Private Sub Text1_KeyPress(KeyAscii As Integer)

    KeyAscii = KeyAscii - 16

End Sub

Diese Funktion wandelt (wenn eine Zahl eingegeben wurde) die Eingabe gemäss des installierten ASCII-Zeichensatzes in [sHIFT]+Zahleingabe um. [EDIT]:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    lblTasteWert.Caption = Chr(KeyCode)

    lblScanWert.Caption = CStr(KeyCode)

    lblShiftWert.Caption = CStr(Shift)

End Sub

Geschrieben
Original geschrieben von LoneGunman


Private Sub Text1_KeyPress(KeyAscii As Integer)

    KeyAscii = KeyAscii - 16

End Sub

Diese Funktion wandelt (wenn eine Zahl eingegeben wurde) die Eingabe gemäss des installierten ASCII-Zeichensatzes in [sHIFT]+Zahleingabe um.
das stimmt, es macht aber aus 3 + SHIFT -> # !
Original geschrieben von LoneGunman

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    lblTasteWert.Caption = Chr(KeyCode)

    lblScanWert.Caption = CStr(KeyCode)

    lblShiftWert.Caption = CStr(Shift)

End Sub

wie gesagt ich benutze kein keydown, sondern einen Keyboardhook der mir alle tasten nacheinander liefert!

zum scancode:

der scancode ist tasturlayout abhängig. Das heisst ich kann zum Virtualkeycode von "1" zum Beispiel den Scancode auslesen (HEX: 02). Das "!" hat jetzt auch den Scancode 02 und ich müsste nur noch den "anderen" wert für den scancode auslesen. Das müsste dann auch Tastaturlayout unabhängig klappen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...