Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zahlentasten "umwandeln" wenn shift gedrückt

Empfohlene Antworten

Veröffentlicht

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

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

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!

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.

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!

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?


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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.