Print Page | Close Window

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

Close Window