At the end of the Autotype sequence, all bets are off as to what state the SHIFT key is in. I have tried slowing down the ramp up to autotype to 1.5 seconds to give things time to settle, I have tried separating each keystroke by 100ms, to no avail. It should be noted that if I run KeePassXC in a bare metal Windows and autotype through Microsoft Remote Desktop into an Azure VM, all things work fine. When I autotype through Microsoft Remote Desktop (from the App store, the one that requires subscriptions), things break. If I run autotype into Notepad in the VirtualBox Windows VM that is running KeePassXC, all things are fine. If I use Autotype to a virtual machine in Azure, using Remote Desktop App, the keystrokes are fine, but the SHIFT gets all out of sync. I have a related problem with Windows Guest in Virtualbox, running KeePassXC 2.7.5 This does not send unicode or extended ascii characters to VirtualBox or similar, but that can be worked out later. In.ki.wScan = MapVirtualKey(LOBYTE(vkey), MAPVK_VK_TO_VSC) Hold shift down if VKey indicates it's required In.ki.dwExtraInfo = ::GetMessageExtraInfo() VKey not found, send as Unicode character Void AutoTypePlatformWin::sendChar(const QChar& ch, bool isKeyDown)Īuto vkey = VkKeyScanExW(ch.unicode(), GetKeyboardLayout(0)) It would be awesome if KeePassXC could support sending scan-code-based events, though it would primarily be used for working around broken applications and I can definitely see that being a maintenance burden. I assume that this difference matters to applications that are able to detect raw key presses (like VM/physical server consoles)?ĮDIT: The Supermicro HTML5 IPMI console uses an old version noVNC library, which explicitly lowercases the inputted character if the javascript KeyboardEvent.shiftKey property says that shift is not pressed. If that doesn't work, then it uses the same KEYEVENTF_UNICODE method that KeePassXC does. Looks like KeePass2's SendInputExt.TrySendCharByKeypresses function tries to split out the modifiers like this using the VkKeyScan API. KeePass2 sends ( without KEYEVENTF_UNICODE): KeePassXC sends ( with KEYEVENTF_UNICODE): (I can move this to a separate issue if needed since the OP is running Ubuntu and I'm not sure that the reason we're seeing the same issue is from the same code.) (I won't attempt to address this for other platforms though since I only use Windows and Linux w/Wayland).Īt least on Windows, it seems the behavior difference between KeePassXC and KeePass2 is different due to how SendInput is being called. I'll try implementing a fix for the Windows SendInput-based implementation this week. I originally posted this in #6566 (comment), but was asked to post here instead.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |