View Issue Details

IDProjectCategoryView StatusLast Update
0002259Far ManagerMacropublic2014-10-24 20:46
ReporterfarmanAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Target VersionFixed in Version 
Summary0002259: Recorded macro does not play back on some keys (german Keyboard)
DescriptionI used the macro recorder to record a simple keyboard-sequence (open a menu).

And some keys don't play back when I'm using my german keyboard:
http://en.wikipedia.org/wiki/Keyboard_layout#Austria_and_Germany

The Key "<" (second line from below, left to "YXCVB") is not recognized when playing back a macro. The macro is recorded and saved under "Shell_CtrlShift[.lua" (in FAR2 it is "CtrlShiftBackSlash" which works). It can be played back with another (normal) key.

btw: maybe this is helpful. "Ctrl<" works as "change to rootfolder".
TagsNo tags attached.
Build

Relationships

related to 0002110 new В DN_CONTROLINPUT InputRecord не соответствует нажатой клавише 
related to 0002846 new Keyboard - national characters problem (some supplementation) 
related to 0002275 new Неверное определение сочетаний клавиш Alt+~/Ctrl+~ в японской раскладке 
related to 0002397 new Wrong keycodes for CtrlAlt[ etc. 

Activities

shmuel

2013-01-16 14:35

developer   bugnote:0010014

Unfortunately I don't have a German keyboard and thus unable to investigate the issue by direct experimenting. What could be helpful in these circumstances is determining the exact Far version on which it stopped to work.

There is a page http://farmanager.com/nightly.php with various Far versions. If you could tell me that with version X it worked, and with version X+1 it stopped to work, that would be very helpful.

farman

2013-01-16 15:06

reporter   bugnote:0010015

Last edited: 2013-01-16 15:07

View 2 revisions

thanx for your answer.

i tried
Far30b2305.x86.20111221.7z (first ver)
Far30b2772.x86.20120724.7z (somewhere in the middle)
Far30b3085.x86.20130116.7z (last ver)

so i have to say, that this issue appears since ver 3.x. in ver 2 everything works.

i'm not quite sure but i think i had that problem in one of the FAR2 version too. but i do not find anything in mantis/forum. Maybe this helps:

Ansi-Code < (key i like to use)
Ascii-Code 60
Hex-Code 3c
Key-Code 226
Shift-State 0
Scan-Code 86
Action-Code 2

Ansi-Code [ (recorded key)
Ascii-Code 91
Hex-Code 5B
Key-Code 56
Shift-State 6
Scan-Code 9
Action-Code 2

Ansi-Code \ ("working Backslash"-key from FAR2, which is truely "<")
Ascii-Code 92
Hex-Code 5C
Key-Code 219
Shift-State 6
Scan-Code 12
Action-Code 2

edit: i think there some more special keys too (but i did not test them yet)

shmuel

2013-01-16 18:01

developer   bugnote:0010019

The fact it worked in Far 2 may be by chance, because < and \ are obviously different characters.

Could you try <, Ctrl< and Shift< and tell me if it worked?

2useven10

2013-01-16 20:42

developer   bugnote:0010021

i suppose it is related to 0001832

farman

2013-01-17 10:03

reporter   bugnote:0010029

< and Shift< (= ">") work.
Ctrl< and Alt< don't.

as you can see here the keys are correct for the working ones:
- Shell_Alt[.lua
- Shell_Ctrl[.lua
+ Shell_Less.lua
+ Shell_More.lua

farman

2013-01-17 14:39

reporter   bugnote:0010032

*MAYBE* this one helps too *OR* maybe this is another (fmlua-)error:
(If that is too confusing please forget about it...)

I do have some fmlua-macros. If you're familiar with this then you know that you can define several macros for one key which pop up in a window.

The strange thing here is, that when I press "AltShift7" 3 different keys (see below) are shown in this window. As I said this could be a fmlua-error.

It may be ok for the keys "AltShift7" and "AltShift/" because Shift7 means "/" on german keyboard. But is it ok when I press "AltShift7" and "Alt/" (but not "Alt7" which I also have) is also shown?

Macros:
===============
macro Bind="Alt/" Area="Editor"
  {{ Keys("F9") }}

macro Bind="AltShift/" Area="Editor"
  {{ Keys("F9") }}

macro Bind="AltShift7" Area="Editor"
  {{ Keys("F9") }}

shmuel

2013-01-17 22:43

developer  

keyname.lua (811 bytes)

shmuel

2013-01-17 22:48

developer   bugnote:0010040

farman,
Could you please install the attached macro keyname.lua (copy this file into your %FARPROFILE%\Macros\scripts directory), and provide me with its exact output when you press < with all combinations of Ctrl, Alt, Shift ?

farman

2013-01-18 10:17

reporter   bugnote:0010042

sure :)

Key (Macro) Key code
< 60 (0x3C) Original Key
> 62 (0x3E) =Shift< (ok)
| 124 (0x7C) =ALtGr< (ok)
CtrlBackSlash 16777308 (0x100005C) =LCtrl< (err: no Backslash)
RCtrlBackSlash 268435548 (0x1000005C) =RCtrl< (err: no Backslash)
AltBackSlash 33554524 (0x200005C) =ALt< (err: no Backslash)
CtrlAltBackSlash 50331740 (0x300005C) =CtrlAlt< (err: no Backslash)
RCtrlAltBackSlash 301989980 (0x1200005C) =RCtrlAlt< (err: no Backslash)
AltShiftBackSlash 100663388 (0x600005C) =AltShift< (err: no Backslash)
CtrlShiftBackSlash 83886172 (0x500005C) =CtrlShift< (err: no Backslash)
RCtrlShiftBackSlash 335544412 (0x1400005C) =RCtrlShift< (err: no Backslash)
 
And one more key (on german keyboard: left to enter. see wiki-link):

Key (Macro) Key code
# 35 (0x23) Original Key
' 39 (0x27) =Shift# (ok)
Ctrl/ 16777263 (0x100002F) =LCtrl# (err: no slash)
RCtrl/ 268435503 (0x1000002F) =RCtrl# (err: no slash)
Alt/ 33554479 (0x200002F) =ALt# (err: no slash)
CtrlAlt/ 50331695 (0x300002F) =CtrlAlt# (err: no slash)
RCtrlAlt/ 301989935 (0x1200002F) =RCtrlAlt# (err: no slash)
AltShift/ 100663343 (0x600002F) =AltShift# (err: no slash)
CtrlShift/ 83886127 (0x500002F) =CtrlShift# (err: no slash)
RCtrlShift/ 335544367 (0x1400002F) =RCtrlShift# (err: no slash)

ALtGr# = no scancode (ok)

farman

2013-01-18 10:43

reporter   bugnote:0010044

The autoformat-function for this board is not always good. My whole tables are changed. I hope it's still readable enough. If not please tell me.

shmuel

2013-01-19 15:17

developer   bugnote:0010058

farman,
thanks for your efforts, they are really helpful.

Now, I'd ask you to download the file testfar1.7z (1771 KB) from http://wikisend.com/download/739660/testfar1.7z. If you don't trust this binary, you can build it yourself (there is a patch macro.cpp.patch in the root folder).

This Far creates file %FARPROFILE%\dump1.txt when the user records macros. I'm interested to see this file after you record any simple macros and assign them to Ctrl<, CtrlShift< or Alt< . dump1.txt is opened in "append" mode, so you don't need to save results after each test.

farman

2013-01-19 22:57

reporter   bugnote:0010059

Oh, I have to say thank you and the other guys coding far. I'm an every day user of far since years. It's a pleasure to contribute a little. :)

So here are the dumps (order: Ctrl<, CtrlShift<, Alt<)
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=226
wVirtualScanCode=86
UnicodeChar=60
AsciiChar=60
dwControlKeyState=0
InputRecordToKey() result=0x0000003C
Final key value=0x0000003C
FinalKeyName=<
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=13
wVirtualScanCode=28
UnicodeChar=13
AsciiChar=13
dwControlKeyState=0
InputRecordToKey() result=0x0000000D
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=219
wVirtualScanCode=12
UnicodeChar=92
AsciiChar=92
dwControlKeyState=20
InputRecordToKey() result=0x1400005B
Final key value=0x0500005B
FinalKeyName=CtrlShift[
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=13
wVirtualScanCode=28
UnicodeChar=13
AsciiChar=13
dwControlKeyState=0
InputRecordToKey() result=0x0000000D
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=219
wVirtualScanCode=12
UnicodeChar=92
AsciiChar=92
dwControlKeyState=2
InputRecordToKey() result=0x0200005B
Final key value=0x0200005B
FinalKeyName=Alt[
--------
bKeyDown=1
wRepeatCount=1
wVirtualKeyCode=13
wVirtualScanCode=28
UnicodeChar=13
AsciiChar=13
dwControlKeyState=0
InputRecordToKey() result=0x0000000D

shmuel

2013-01-20 19:25

developer   bugnote:0010073

farman,
please try this file (that should fix the problem with <)
http://wikisend.com/download/456562/testfar2.7z

The fix does not try to solve the problem at large, rather patches the particular issue at hand. Tell me please how it behaved.

farman

2013-01-21 10:21

reporter   bugnote:0010079

<
Records and plays back. macro-key name is "<".

CtrlShift<
Records and plays back. macro-key name is "CtrlShiftBackslash".

Alt<
Records and plays back. macro-key name is "AltBackslash".

Ctrl<
Records and plays back. macro-key name is "CtrlBackslash".

shmuel

2013-01-21 10:44

developer   bugnote:0010080

OK. Are there any other known misbehaving keys?

farman

2013-01-21 10:59

reporter   bugnote:0010081

Last edited: 2013-01-21 11:07

View 2 revisions

yes. one more is under 0002259:0010042.

what do you need exactly? all those keys? which combinations?

shmuel

2013-01-21 11:48

developer   bugnote:0010083

> what do you need exactly? all those keys? which combinations?

I need to know what keys and key combinations don't play back after recording.

As far as I understand, # is one such key? Please try to record simple macros and assign them to # and # with modifiers. Do none of them play back?

farman

2013-01-21 13:58

reporter   bugnote:0010085

Last edited: 2013-01-21 14:18

View 2 revisions

Recorded in "testfar2.7z"


---------------------------
-- TEST 1
---------------------------

1 ---------------------------
Keyboard = <
Keyboard+Shift = >
--
Macro with Key "<"
-> ok
Macro with Key "CtrlShift<"
-> wrong
-> recorded as "CtrlShiftBackSlash" (-> "testfar2.7z")
-> played back as "CtrlShift<" (-> "testfar2.7z")
-> recorded as "CtrlShift[" (-> FAR.3097)
-> played back as "CtrlShiftß" (-> FAR.3097) - ß=german char


2 ---------------------------
Keyboard = #
Keyboard+Shift = '
--
Macro with Key "#"
-> ok
Macro with Key "CtrlShift#"
-> wrong
-> recorded as "CtrlShift7"
-> played back as "CtrlShift7"


3 ---------------------------
Keyboard = +
Keyboard+Shift = *
--
Macro with Key "+"
-> ok
Macro with Key "CtrlShift+"
-> wrong
-> recorded as "CtrlShift0"
-> played back as "CtrlShift0"


4 ---------------------------
(To test original "CtrlShift0" from POINT 3, I recorded it too:)
Keyboard = 0
Keyboard+Shift = "="
--
Macro with Key "0"
-> ok
Macro with Key "CtrlShift0"
-> ok


---------------------------
-- TEST 2
---------------------------

Now for short the special other keys:

Keyboard - Macro Key - Macro CtrlShift Key
< < CtrlShiftBackslash
# # CtrlShift7
+ + CtrlShift0
^ ° CtrlShiftBackslash
´ ` CtrlShift9

national chars:
ä ' CtrlShift/
ö ` CtrlShift]
ü ; CtrlShift,
ß [ CtrlShift8


---------------------------
-- TEST 3
---------------------------

testeded other keys

Keyboard - Macro Key - Macro CtrlShift Key
0 0 CtrlShift0 -> ok
- - CtrlShift- -> ok
, , CtrlShift, -> ok


---------------------------
-- TEST 4
---------------------------

Tested special:

Keyboard = a
Macro Key = A -> Is uppercase here ok?

Keyboard = AltGr A (right Alt)
Macro Key = Alt -> Alt without "A" !?. In FAR2 = AltA

LCrtl/RCrtl are recognized as Ctrl -> is that ok?

Win = Is recognized if no other key is pressed. But not in combination with another key ?!

other "A"-combinations seems to be ok.


---------------------------
I hope this is clear enough...
:)

shmuel

2013-01-22 19:50

developer   bugnote:0010097

farman, thanks for the detailed data. The issue appears to be more complicated than it seemed to me at first. I will let you know about the progress when something changes.

Issue History

Date Modified Username Field Change
2013-01-16 13:24 farman New Issue
2013-01-16 14:35 shmuel Note Added: 0010014
2013-01-16 15:06 farman Note Added: 0010015
2013-01-16 15:07 farman Note Edited: 0010015 View Revisions
2013-01-16 18:01 shmuel Note Added: 0010019
2013-01-16 20:42 2useven10 Note Added: 0010021
2013-01-17 10:03 farman Note Added: 0010029
2013-01-17 14:39 farman Note Added: 0010032
2013-01-17 22:43 shmuel File Added: keyname.lua
2013-01-17 22:48 shmuel Note Added: 0010040
2013-01-18 10:17 farman Note Added: 0010042
2013-01-18 10:43 farman Note Added: 0010044
2013-01-19 15:17 shmuel Note Added: 0010058
2013-01-19 22:57 farman Note Added: 0010059
2013-01-20 19:25 shmuel Note Added: 0010073
2013-01-21 10:21 farman Note Added: 0010079
2013-01-21 10:44 shmuel Note Added: 0010080
2013-01-21 10:59 farman Note Added: 0010081
2013-01-21 11:07 2useven10 Note Edited: 0010081 View Revisions
2013-01-21 11:48 shmuel Note Added: 0010083
2013-01-21 13:58 farman Note Added: 0010085
2013-01-21 14:18 farman Note Edited: 0010085 View Revisions
2013-01-21 15:04 shmuel Summary Recorded macro dows not play back on some keys (german Keyboard) => Recorded macro does not play back on some keys (german Keyboard)
2013-01-22 19:50 shmuel Note Added: 0010097
2013-01-27 01:23 shmuel Relationship added related to 0002275
2013-04-25 21:17 shmuel Relationship added related to 0002110
2013-04-26 00:26 shmuel Relationship added related to 0002397
2014-10-24 20:46 shmuel Relationship added related to 0002846