q-dir how to control
Printed from: StrokesPlus Forum
Topic URL: https://www.strokesplus.com/forum/topic.asp?TOPIC_ID=784
Printed on: 05/04/2024
Topic:
Topic author: xiaoz4
Subject: q-dir how to control
Posted on: 10/23/2013 20:08:53
Message:
About the q-dir this software, how to control,
^w %{left} %{up} Will not work
Replies:
Reply author: Rob
Replied on: 10/24/2013 10:21:42
Message:
There's something very odd about how Q-Dir handles hot keys. I have no explanation why it will recognize a regular character (like acSendKeys("r") will be recognized and select the file/folder that begins with the letter "r"), but simply ignores when there's a modifier like Control or Alt pressed.
Unfortunately, this is something that only the developer of Q-Dir can answer. S+ is sending the synthesized key combination, but something internal to Q-Dir is ignoring the key press event(s). Using the script below I could sometimes get CTRL+W to work, but very inconsistently:
acDelay(250)
acSendControlDown()
acDelay(250)
acSendKeys("w")
acDelay(250)
acSendControlUp()
There's something very particular about the way Q-Dir is processing keyboard input and I'm not certain what it is that's causing the odd behavior.
I'll post here if I can figure anything out.
Reply author: xiaoz4
Replied on: 10/26/2013 23:03:04
Message:
Thank you
Like this software
Because it can display the size percentage
Reply author: dele
Replied on: 02/01/2014 04:23:48
Message:
I am new here. Just switched from Strokeit to StrokesPlus (2.8.1.1).
I also use Q-Dir and wanted to use "Left" to navigate to the higher folder.
This worked with StrokeIt sending the hotkey BACK. (So it isn't a only a problem Q-Dir). But it doesn't work with S+. I analysed with SpyEx the keyboard messages, which are send to Q-Dir.
With Strokeit the following messages are send:
hWnd Message wParam lParam
0x000C0A70 WM_KEYDOWN 0x8 0x1
0x000C0A70 WM_KEYUP 0x8 0xC0000001
With S+ the following messages are send:
hWnd Message wParam lParam
0x000E0A6E WM_KEYDOWN 0x8 0xE0001
0x000E0A6E WM_CHAR 0x8 0xE0001
0x000E0A6E WM_CHAR 0x8 0xE0001
0x000E0A6E WM_KEYUP 0x8 0xC00E0001
0x000E0A6E WM_KEYUP 0x8 0xC00E0001
Maybe this difference is causing the problem with Q-Dir
Reply author: Rob
Replied on: 02/02/2014 15:48:58
Message:
I have no idea, once again I've looked at it with Spy++, nothing makes sense with the way Q-Dir handles messages, the entire window hierarchy is messy as well.
If I open Notepad and watch messages, I press ALT+Left on the keyboard, then I use acSendKeys("%{LEFT}") and the messages are 100% identical.
I don't know what it is about Q-Dir, but the input handling is very odd, I wish I could figure out a way to make it work, but it's simply an exception case, I use sendkeys all day everyday across a variety of applications, and other than Q-Dir and possible Photoshop CC (which I haven't been able to confirm), applications accept the input. It seems Q-Dir is handling input in a very non-standard fashion and without access to the source code, there's no way for me to figure out what it's doing.
I wish I had a solution, but even directly posting message doesn't seem to work, though the complicated window hierarchy makes it extremely difficult to determine where the message should even be delivered.
Reply author: dele
Replied on: 10/02/2017 06:37:37
Message:
Three and a half year later i found a workaround.
Autoit only sends keydown and keyup without this "WM_CHAR 0x8" in between and Q-Dir behaves as desired. So i wrote a very small autoit script just sending backspace and compiled it to an exe called "Q-Dir_backspace.exe".
In Strokesplus i call that small exe and it works fine for me.
May be you can have a look to how StrokesPlus is sending Backspace:
StrokesPlus Forum : https://www.strokesplus.com/forum/
© 2011-2018 Rob Yapchanyk