Menu

#1235 Keepass Incorrectly handled different keyboard layouts.

KeePass_2.x
closed
nobody
keyboard (8)
5
2014-11-29
2014-04-15
Robo
No

Version 2.25 and 2.26 have problem with autotype password if selected keyboard is not set to English, older versions work fine.
My system is Win7Pro 64bit

Example:
KeePass password set to "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\" appears in notepad as:

  • "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\" if the keyboard is set to English (All correct)

  • "`1234567890-=~!@$%^*()_+qwertyuiop]\" if set to Slovak keyboard (char "#&[" not display and KeePass trigger additional global key combinations "Ctrl+Alt+f" and "Ctrl+Alt+x" what for me starts playing music in another program and mute sound)

  • "`1234567890-=!@#$%^&*()_+qwertyuiop[]\" If set German keyboard set (char "~" not display)

Discussion

  • Dominik Reichl

    Dominik Reichl - 2014-04-21

    I believe this problem is caused by your music player. Apparently it registers some key combinations as system-wide hot keys that normally are used to produce characters. The best solution would be to specify different key combinations for the hot keys.

    Anyway, I've now implemented the following: before sending a character using a key combination involving at least two modifiers, KeePass now first tests whether this key combination is a registered system-wide hot key, and, if so, tries to send the character as a Unicode packet instead. However, let me emphasize that this will not work in some windows (e.g. most VM windows do not support Unicode packets), and the only real solution is to choose different hot keys.

    Here's the latest development snapshot for testing:
    http://keepass.info/filepool/KeePass_140421.zip

    Thanks and best regards,
    Dominik

     
  • Dominik Reichl

    Dominik Reichl - 2014-04-21
    • status: open --> closed
    • Priority: 3 --> 5
     
  • Robo

    Robo - 2014-04-21

    Thank for answer, the latest development snapshot work fine and most of my passwords to sites entered correctly.
    But I think KeePass need a little more developed, my example password sent before still don't enter correct whit another selected keyboard language as English.

    • "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\" if the keyboard is set to English (Same as before all char entered correctly)

    • "`1234567890-=~!@#$%^*()_+qwertyuiop[]\" set Slovak keyboard (char "&" still not send, problem with KeePass sending key combinations "Ctrl+Alt+f" and "Ctrl+Alt+x" solved)

    • "`1234567890-=!@#$%^&*()_+qwertyuiop[]\" set German keyboard (char "~" still not send)

    Sorry for my bad English hope your understand my post.
    I added my keyboard setting in Windows 7.

     
  • Dominik Reichl

    Dominik Reichl - 2014-04-22

    I cannot reproduce this; all characters are sent fine on my machine, independent of the keyboard layout of KeePass and the target window (tested various combinations of English, Slovak and German). Also, I don't think this is caused directly by different keyboard layouts; KeePass does explicitly implement support for arbitrary keyboard layouts.

    Probably some other application is interfering with auto-type on your machine, or the target window is processing some keys incorrectly. If you find out the cause, please let us know.

    Thanks and best regards,
    Dominik

     
  • Robo

    Robo - 2014-04-22

    I don't know what is the problem. Tested again KeePass (I use portable version) latest development version (closes all unnecessary running programs) and later I tested it in Windows Safe Mode both time with same result as before.
    Tested KeePass-2.24 (I newer have problem with passwords on this or early versions), if set EN or DE keyboard test password is entered correctly but SK still don't display "&" char. (think I use this char rare in my passwords and not notice problem before).
    At time development version work fine, in future I reinstall my windows and hope problem is gone, thanks for all help.

     
  • Gaétan RYCKEBOER

    It seems the hook is badly setup, not at the right place in the keyboard heap.

    For instance, please try with "Portable Keyboard Layout", which is using Auto Hot Key.
    The password typed by Keepass is pure junk, as impacted by PKL if enabled.
    It would be better to change the order of the programs :

    • Keyboard
    • Layout Driver
    • AHK
    • Keepass

    I think it is not this order for now, but something like this one :

    • Keyboard
    • Keepass
    • Layout driver
    • AHK

    Keepass's hook should go down in this heap.

     

Log in to post a comment.

Monday.com Logo