Author |
Topic |
|
tia34531
18 Posts |
Posted - 11/22/2013 : 06:36:49
|
Hi,,
S+ is already far more than any other gesture program... nevertheless, I suggest 3 things...
1. Hotkeys working in specific application could be set...just like gesture actions.
2. WheelUp and WheelDown key would be added in the "available Key List"
3. Hotkey could block its own hotkey... ----------------------------------------------------------------------------------- ex) ^C :: acDisplayText("Copied", "gulim", 12, 0, 0, 0, 500,acGetMouseLocationX()+10, acGetMouseLocationY()-3) acSendKeys("^c") -------------------------------------------------------------------------------- It circulates over and over again.
anyway,, if too many efforts are needed, never mind.. S+ is good enough now
|
Edited by - tia34531 on 11/22/2013 08:44:42 |
|
Rob
USA
2615 Posts |
Posted - 11/22/2013 : 10:02:10
|
1. Certainly plausible. I added the hotkey code as a very quick update, and which didn't require changing any of the other code and interfaces. I'll definitely enhance the hotkey functionality when I rewrite S+
2. Unfortunately, you cannot register a hotkey with Windows which includes the mouse wheel. It's much easier to allow Windows to handle global hotkey registration instead of S+ constantly watching all keystrokes, etc.
3. This isn't a realistic setup. I completely understand why you'd want to use (it's a nice idea), but when you register a hotkey with Windows, no other application will ever receive the command other than the one which registered the hotkey. So even though you are sending CTRL+C in your script, the application will never receive it. The only way to accomplish what you're trying is to directly post the CTRL+C messages to the proper control in your script, but trust me when I say it's not remotely worth the time and energy as you have to post them to the proper control/message handler or it won't work...and sometimes trying to determine what the proper control/handle is will be literally impossible. The only other possibility would be if I added a Lua function which could disable the hotkey (unregister it within Windows), then activate/re-register the hotkey. Again, probably more trouble than it's worth. The proper way would be to have a keyboard hook which watches for CTRL+C but does not intercept it, but that's a bit out of the scope of S+ at the moment. |
|
|
tia34531
18 Posts |
Posted - 11/22/2013 : 20:00:39
|
Thanks so much for your reply.. |
|
|
Rob
USA
2615 Posts |
Posted - 11/29/2013 : 21:29:16
|
Regarding #1 and #3, similar to the problem with registering global hotkeys which can only exist one time, you can use this trick to check the foreground window and perform certain actions based on the window, or send the original hotkey (using code added in 2.7.6.1):local hForegroundWindow = acGetForegroundWindow()
local sTitle = acGetWindowTitle(hForegroundWindow)
local sEXE = acGetExecutableName(hForegroundWindow)
if sTitle == "Untitled - Notepad" then
acMessageBox("Notepad - Not relaying actual hotkey")
elseif sTitle == "This PC" then
acMessageBox("Explorer - Not relaying actual hotkey")
elseif acGetExecutableName(hForegroundWindow) == "StrokesPlus.exe" then
acMessageBox("StrokesPlus - Not relaying actual hotkey")
else
acDisplayText("Copied", "Arial", 42, 0, 0, 0, 500,acGetMouseLocationX()+10, acGetMouseLocationY()-3)
acDisableHotkey(hkid)
acSendKeys("^c")
acEnableHotkey(hkid)
end |
|
|
tia34531
18 Posts |
Posted - 12/01/2013 : 04:28:19
|
Thank you very much.. It works perfect. |
|
|
|
Topic |
|
|
|