New Auto-Type Key Sending Engine

2014-01-02
2014-01-30
1 2 > >> (Page 1 of 2)
  • Dominik Reichl
    Dominik Reichl
    2014-01-02

    Hi,

    exciting news! In the last few days, I rewrote the auto-type key sending engine of KeePass 2.x.

    • On Windows, only native API functions are used now, not the managed SendKeys class anymore (and thus none of the SendKeys workarounds is required anymore).
    • Auto-Type is now largely compatible with custom keyboard layouts (like Neo), in addition to standard system keyboard layouts.
    • Support for sending Unicode characters has been improved.
    • Sequence parsing is faster, more flexible, much easier to maintain, and optimizes the sequence (e.g. combining key modifier states).
    • The behavior for invalid sequences has been improved.
    • The sequence is processed in a streaming-like way, allowing interesting new features in the future.
    • Delays now work differentially, making the auto-type process less susceptible to externally caused delays.
    • Cancelling (e.g. on target window change) is now more precise (up to at most one keypress) and also works on Unix-like systems.
    • Improved message processing during auto-type.

    As auto-type is one of the most important features of KeePass, I'd be happy if more people could test the new engine. All feedback is welcome :-)

    Here's the latest development snapshot:
    http://keepass.info/filepool/KeePass_140102.zip

    Thanks and best regards,
    Dominik

     
  • Paul
    Paul
    2014-01-02

    I've tried a few things that Auto-Type and the typing seems to be slower than the old version, but still works.

    cheers, Paul

     
  • Dominik Reichl
    Dominik Reichl
    2014-01-02

    Interesting, thanks a lot for testing it!

    On my system, the new engine is a bit faster than the old one, but especially in the old one the speed is really dependent on externally caused delays. For example, Adobe Flash has influenced the old engine, making the auto-type process a lot faster than intended; the new engine is less affected by this. In general, the new engine's delays should be much more precise.

    If you want to see how fast auto-type could really be, try {DELAY=0}{PASSWORD} as sequence and a 1000 character password (generated by the password generator); on my system it takes less 1.5 seconds. Anyway, speed is not a goal; the default delay has been chosen such that hopefully all target applications can handle the keypresses correctly.

    Best regards,
    Dominik

     
  • dregad
    dregad
    2014-01-02

    Hi Dominik,

    I'll try to test this next week. Thanks for the update !

     
  • Dominik Reichl
    Dominik Reichl
    2014-01-03

    I've now changed the time span measuring method; KeePass now uses a high-resolution hardware performance counter (if available), which usually has a resolution far below 1 ms (previously KeePass used the system timer, which on many systems isn't very precise, e.g. only around 16 ms).

    With this I made a few experiments. With the new default delay value, auto-type of KeePass 2.25 will be around 25% faster than in 2.24, but should hopefully still not lead to problems in target applications.

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

    If anyone encounters problems, please let me know!

    Thanks and best regards,
    Dominik

     
  • Paul
    Paul
    2014-01-03

    Hard to judge but it now seems to run about the same speed as 2.24 on my system.

    cheers, Paul

     
  • Horst
    Horst
    2014-01-03

    Tested under Windows 7 x64.
    Several web sites, stand-alone programs and Truecrypt containers.
    No problems , speed is ok.

     
  • Dominik Reichl
    Dominik Reichl
    2014-01-04

    Great, thanks for testing :-)

    I've further improved the parsing performance, syntax violation detection and behavior for invalid sequences.

    New development snapshot:
    http://keepass.info/filepool/KeePass_140104.zip

    Best regards,
    Dominik

     
  • Etienne
    Etienne
    2014-01-05

    My apologies for having PM you, Dominik.

    To all: the new keystroke engine does not seem to handle spaces (used for toggling checkboxes) properly.

    Best regards,
    Etienne

     
  • Paul
    Paul
    2014-01-06

    I have tested this on a site and it seems to fail consistently. Tabbing and space work in input boxes but spaces don't seem to toggle tick boxes.

    cheers, Paul

     
  • Dominik Reichl
    Dominik Reichl
    2014-01-06

    Interesting, thanks a lot for reporting this issue! I've fixed it now; spaces ' ' should now toggle checkboxes correctly.

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

    Best regards,
    Dominik

     
  • Paul
    Paul
    2014-01-06

    That seems to be fixed now.

    cheers, Paul

     
  • Etienne
    Etienne
    2014-01-06

    Yep, I agree with Paul: so far, so good Dominik.

    Thank you very much for your private detailed answer.

    I strongly urge ALL users to extensively "stress test" the new auto-type key sending engine, with "exotic" sequences (special characters, keywords etc.) if possible, since a flawless keystroke engine is a core feature of any password manager.

    Best regards,
    Etienne

     
    • Alpengreis
      Alpengreis
      2014-01-07

      Good news, wow! Thank you VERY much for the work!

      Until now - after few easy login-tests, no problems (KeePass_140106) ...

      Best regards,
      Alpengreis (formerly SwissBIT)

       
      Last edit: Alpengreis 2014-01-07
  • Merlin
    Merlin
    2014-01-08

    Moin,

    I am using many 5250 emulations like ClientAccess and with the last snapshot username and password will be transferred into the session. With an old version of Keepass it works normal. With the last official version only the last character - the # - was cutoff.

    Regards

     
  • Paul
    Paul
    2014-01-08

    Merlin, please explain what does and doesn't work with step by step instructions.

    cheers, Paul

     
    • Merlin
      Merlin
      2014-01-09

      Hello Paul,

      I start my 5250 emulation and press ctrl-alt-a for auto-type. Then Keepass inserts a blank username tabs to the next field inserts the blank password and hits enter.
      But with blank values nothing happens of course.

      Cheers, Merlin

       
  • first tests with NEO an no problems so far! Thanks!

     
  • Paul
    Paul
    2014-01-09

    Merlin, what version of KeePass doesn't work and what is the emulation program?

    cheers, Paul

     
    • Merlin
      Merlin
      2014-01-10

      Hello Paul,

      actually the version 2.24 and the emulation programm client access from IBM.

      Cheers, Merlin

       
  • Paul
    Paul
    2014-01-10

    So the snapshot version with the re-written send keys works OK on the emulator?

    cheers, Paul

     
  • Jon
    Jon
    2014-01-11

    Since you're re-writing the auto-type stuff anyway, I went ahead and tested to see if this new engine fixed a problem that cropped up for me the other day after a Chrome upgrade.

    I run Chrome in "metro" mode in Windows 8.1, and the latest version of it changed the way windows and tabs are handled in a way that apparently broke the insertion of auto-type'd characters. Specifically, the Chrome "app" runs in essentially its own little desktop space with a "shelf" (really a taskbar wannabe) and the ability to have multiple Chrome windows side-by-side.

    When I press my auto-type hotkey combination in a relevant field in Chrome, nothing ever appears now.

    If I re-launch Chrome in desktop mode, everything is fine.

    If you would prefer I submit this as a bug somewhere, I can do that for you.

     
  • Dominik Reichl
    Dominik Reichl
    2014-01-11

    On the emulator: unfortunately I didn't find 'IBM Client Access' for download anywhere and thus cannot test it. If you can do more tests, I'd primarily be interested in the result of sending the auto-type sequence 'AA+(BB)CC' (enter it as sequence on the 'Auto-Type' tab of the entry editing dialog, not in any data field).

    On Google Chrome: I tried to reproduce this issue, but it works perfectly fine for me (up-to-date Windows 8.1, Chrome 31.0.1650.63 m); KeePass does auto-type into the Chrome app (Metro mode) as expected.

    Best regards,
    Dominik

     
    • Merlin
      Merlin
      2014-01-14

      Hi Dominik,

      I assume you will not find any free IBM Client Access because it is a licensed program.
      I tried the sequence AA+(BB)CC and only BB is coming in the field.

      Best regards,
      Florian

       
  • Jon
    Jon
    2014-01-14

    My version of Chrome is 32.0.1700.72 m
    Can you test with this version please?

     
1 2 > >> (Page 1 of 2)