Syntax for Funtion keys and key combos?
Syntax for Funtion keys and key combos?
Petr,
How can special keys, like F8, or Control-L be sent? Is there a syntax secret? Like {F8}?
I am using a Dynex keypad with AutoCad to speed drafting functions like so:
if (button == kb_add ) then lmc_send_keys('per ')
elseif (button == kb_minus ) then lmc_send_keys('\'orthoem ')
elseif (button == kb_multiply ) then lmc_send_keys('quickproperties ')
elseif (button == kb_divide ) then lmc_send_keys('line ')
Thank you for your LuaMacros routine!
Ed M.
How can special keys, like F8, or Control-L be sent? Is there a syntax secret? Like {F8}?
I am using a Dynex keypad with AutoCad to speed drafting functions like so:
if (button == kb_add ) then lmc_send_keys('per ')
elseif (button == kb_minus ) then lmc_send_keys('\'orthoem ')
elseif (button == kb_multiply ) then lmc_send_keys('quickproperties ')
elseif (button == kb_divide ) then lmc_send_keys('line ')
Thank you for your LuaMacros routine!
Ed M.
Re: Syntax for Funtion keys and key combos?
Well, have a look at https://github.com/me2d13/luamacros/blo ... ndKeys.pas
Especially this:
These names are recognized when put between curvy brackets {}, as per lines 270-318. Seems to work fine when tested.
Looking at the case statement (lines 220-333) you can see that the syntax is quite similar to the .NET SendKeys.Send(). That is - if you want to send Shift+a you write '+a', Alt+a is '%a', and Ctrl+a is '^a'.
Additionally there's '~' that is translated to VK_RETURN (ENTER key). There are also #, &, <, and > symbols used, which are a bit mysterious to me at the moment... Hopefully Petr will fill us in.
Especially this:
Code: Select all
SendKeyRecs : array[1..MaxSendKeyRecs] of TSendKey =
(
(Name:'BKSP'; VKey:VK_BACK),
(Name:'BS'; VKey:VK_BACK),
(Name:'BACKSPACE'; VKey:VK_BACK),
(Name:'BREAK'; VKey:VK_CANCEL),
(Name:'CAPSLOCK'; VKey:VK_CAPITAL),
(Name:'CLEAR'; VKey:VK_CLEAR),
(Name:'DEL'; VKey:VK_DELETE),
(Name:'DELETE'; VKey:VK_DELETE),
(Name:'DOWN'; VKey:VK_DOWN),
(Name:'END'; VKey:VK_END),
(Name:'ENTER'; VKey:VK_RETURN),
(Name:'ESC'; VKey:VK_ESCAPE),
(Name:'ESCAPE'; VKey:VK_ESCAPE),
(Name:'F1'; VKey:VK_F1),
(Name:'F10'; VKey:VK_F10),
(Name:'F11'; VKey:VK_F11),
(Name:'F12'; VKey:VK_F12),
(Name:'F13'; VKey:VK_F13),
(Name:'F14'; VKey:VK_F14),
(Name:'F15'; VKey:VK_F15),
(Name:'F16'; VKey:VK_F16),
(Name:'F17'; VKey:VK_F17),
(Name:'F18'; VKey:VK_F18),
(Name:'F19'; VKey:VK_F19),
(Name:'F2'; VKey:VK_F2),
(Name:'F20'; VKey:VK_F20),
(Name:'F21'; VKey:VK_F21),
(Name:'F22'; VKey:VK_F22),
(Name:'F23'; VKey:VK_F23),
(Name:'F24'; VKey:VK_F24),
(Name:'F3'; VKey:VK_F3),
(Name:'F4'; VKey:VK_F4),
(Name:'F5'; VKey:VK_F5),
(Name:'F6'; VKey:VK_F6),
(Name:'F7'; VKey:VK_F7),
(Name:'F8'; VKey:VK_F8),
(Name:'F9'; VKey:VK_F9),
(Name:'HELP'; VKey:VK_HELP),
(Name:'HOME'; VKey:VK_HOME),
(Name:'INS'; VKey:VK_INSERT),
(Name:'LEFT'; VKey:VK_LEFT),
(Name:'NUM0'; VKey:VK_NUMPAD0),
(Name:'NUM1'; VKey:VK_NUMPAD1),
(Name:'NUM2'; VKey:VK_NUMPAD2),
(Name:'NUM3'; VKey:VK_NUMPAD3),
(Name:'NUM4'; VKey:VK_NUMPAD4),
(Name:'NUM5'; VKey:VK_NUMPAD5),
(Name:'NUM6'; VKey:VK_NUMPAD6),
(Name:'NUM7'; VKey:VK_NUMPAD7),
(Name:'NUM8'; VKey:VK_NUMPAD8),
(Name:'NUM9'; VKey:VK_NUMPAD9),
(Name:'NUMDECIMAL'; VKey:VK_DECIMAL),
(Name:'NUMDIVIDE'; VKey:VK_DIVIDE),
(Name:'NUMLOCK'; VKey:VK_NUMLOCK),
(Name:'NUMMINUS'; VKey:VK_SUBTRACT),
(Name:'NUMMULTIPLY'; VKey:VK_MULTIPLY),
(Name:'NUMPLUS'; VKey:VK_ADD),
(Name:'PGDN'; VKey:VK_NEXT),
(Name:'PGUP'; VKey:VK_PRIOR),
(Name:'PRTSC'; VKey:VK_PRINT),
(Name:'RIGHT'; VKey:VK_RIGHT),
(Name:'SCROLLLOCK'; VKey:VK_SCROLL),
(Name:'TAB'; VKey:VK_TAB),
(Name:'UP'; VKey:VK_UP)
);
Looking at the case statement (lines 220-333) you can see that the syntax is quite similar to the .NET SendKeys.Send(). That is - if you want to send Shift+a you write '+a', Alt+a is '%a', and Ctrl+a is '^a'.
Additionally there's '~' that is translated to VK_RETURN (ENTER key). There are also #, &, <, and > symbols used, which are a bit mysterious to me at the moment... Hopefully Petr will fill us in.
Re: Syntax for Funtion keys and key combos?
In HidMacros download there's help rtf file describing syntax of sendkey command. LuaMacros use the same code. I should make it online, I know :-/.
Anyway it seems you have answered yourself or this syntax doesn't work in LuaMacros?
Anyway it seems you have answered yourself or this syntax doesn't work in LuaMacros?
Petr Medek
LUAmacros author
LUAmacros author
Re: Syntax for Funtion keys and key combos?
Thanks for the quick answer! Well, seems like it doesn't work as it should.
In Help.rtf there's this:
In Help.rtf there's this:
- however, '+(aaa)' returns Aaa, not AAA, (in LuaMacros) so there's something wrong with the grouping code. As in - in lines 696-719 there's nothing that would make the shift/alt/ctrl code aware of the groups.Surround sequences of characters or key names with parentheses in order to modify them as a group. For example, '+abc' shifts only 'a', while '+(abc)' shifts all three characters.
Re: Syntax for Funtion keys and key combos?
Thanks for testing , will have a look.
Petr Medek
LUAmacros author
LUAmacros author
Re: Syntax for Funtion keys and key combos?
Well, one way to do it might be on finding opening '(' you could check the I-1 modifier (+/%/^), loop till closing ')' and apply it to every element. Then commence with I+1.
That would mean we couldn't do %^+(AAA) to have "Ctrl+Alt+Shit+A Ctrl+Alt+Shit+A Ctrl+Alt+Shit+A", but we can't have that at the moment either, right? I mean, even with single keys. It could be changed though, if instead of just checking the preceding modifier you'd loop through preceding modifiers. Heck, on finding a modifier you might check if preceding elements weren't modifiers too, and apply all of them to the next element. Then we could have Ctrl+Alt+Shit+A.
That would mean we couldn't do %^+(AAA) to have "Ctrl+Alt+Shit+A Ctrl+Alt+Shit+A Ctrl+Alt+Shit+A", but we can't have that at the moment either, right? I mean, even with single keys. It could be changed though, if instead of just checking the preceding modifier you'd loop through preceding modifiers. Heck, on finding a modifier you might check if preceding elements weren't modifiers too, and apply all of them to the next element. Then we could have Ctrl+Alt+Shit+A.
Re: Syntax for Funtion keys and key combos?
Hi!
Beginner with no programming skill here. Could anyone of you help me in the syntax for scripting in luamacro.
What I need is to have a button function the same as when I press the F11 function key.
This is what I have for the syntax so far
elseif (button == 106) then lmc_send_keys ('F11')
But all it does is print out f11.
Thank you!!
Beginner with no programming skill here. Could anyone of you help me in the syntax for scripting in luamacro.
What I need is to have a button function the same as when I press the F11 function key.
This is what I have for the syntax so far
elseif (button == 106) then lmc_send_keys ('F11')
But all it does is print out f11.
Thank you!!
Re: Syntax for Funtion keys and key combos?
impossible!!! it works!
thank you! i had the darn-est time trying out diff. combos /[{"\' and etc. and couldn't not figure out the syntax for it.
May I ask for links to reference to learn the code?
Thank you for the swift reply!
thank you! i had the darn-est time trying out diff. combos /[{"\' and etc. and couldn't not figure out the syntax for it.
May I ask for links to reference to learn the code?
Thank you for the swift reply!
Re: Syntax for Funtion keys and key combos?
I know it's poorly documented :-/
There's some reference in Hidmacro help file, syntax is the same. I should make it available online, I know...
There's some reference in Hidmacro help file, syntax is the same. I should make it available online, I know...
Petr Medek
LUAmacros author
LUAmacros author