-- include "%FARHOME%\fmlMacros\Consts.fmi" -- у меню выбора lua-макросов (= Исполнить макрос = или = Execute a macro =) GUIDmenu={00000000-0000-0000-0000-000000000000} -- и у меню выбора ассоциации (= Выберите ассоциацию = или = Select association =) тоже Macro Area="Menu" Key="CtrlF12" Description="Запускает определённую верхнюю позицию в меню выбора lua-макросов (= Исполнить макрос = или = Execute a macro =)" {{ if (mf.substr(Object.Title,0,19)=="Критерий сортировки") or (mf.substr(Object.Title,0,7)=="Sort by") then -- объект? Keys("F10") mf.usermenu(3,"1 CtF 3-12 режимыСортировки()she.ini") Keys"Down Down Down Down Down Down Down Down Down Down" end if (mf.substr(Object.Title,0,10)=="Меню файла") or (mf.substr(Object.Title,0,10)=="Меню папки") or (mf.substr(Object.Title,0,9)=="File Menu") or (mf.substr(Object.Title,0,11)=="Folder Menu") then Keys("Esc AKey") else if (mf.substr(Object.Title,0,16)=="Исполнить макрос") or (mf.substr(Object.Title,0,15)=="Execute a macro") then Keys("Home") k=mf.akey(1) if (mf.substr(Menu.Value,0,k:len())==k) or (mf.substr(Menu.Value,-k:len(),k:len())==k) then -- если ТОЛЬКО тот же шорткат (k:len() - длина шортката в символах, здесь от 5 до 15) Keys("Enter") else Keys("AKey") -- eval(mf.key(#AKey)) -- Key(#AKey) end end end }} Macro Area="Menu" ---Key="Multiply Add Subtract Divide * + - //" -- Key="* + - //" Key="/F\d/ /F1\d/" -- Key="F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12" Key="CtrlN AltF1 AltF2 AltF5 AltF6 AltF8 AltF9 /AltF1\d/ Ctrl` RAlt" -- Key="CtrlN AltF1 AltF2 AltF5 AltF6 AltF8 AltF9 AltF10 AltF11 AltF12 Ctrl` RAlt" -- AltF4 опущен, поскольку нативно передаёт макрос на редактирование Key="CtrlF1 CtrlF2 CtrlF3 CtrlF4 CtrlF5 CtrlF6 CtrlF7 CtrlF8 CtrlF9 CtrlF10 CtrlF11 CtrlLeft RCtrlLeft CtrlRight RCtrlRight" -- Key="/CtrlF\d/ /CtrlF1\d/" -- Key="CtrlF1 CtrlF2 CtrlF3 CtrlF4 CtrlF5 CtrlF6 CtrlF7 CtrlF8 CtrlF9 CtrlF10 CtrlF11 CtrlF12" Key="/ShiftF\d/ /ShiftF1\d/" -- Key="ShiftF1 ShiftF2 ShiftF3 ShiftF4 ShiftF5 ShiftF6 ShiftF7 ShiftF8 ShiftF9 ShiftF10 ShiftF11 ShiftF12" Key="/CtrlAltF\d/ /CtrlAltF1\d/ CtrlAlt= CtrlAltR" -- Key="CtrlAltF1 CtrlAltF2 CtrlAltF3 CtrlAltF4 CtrlAltF5 CtrlAltF6 CtrlAltF7 CtrlAltF8 CtrlAltF9 CtrlAltF10 CtrlAltF11 CtrlAltF12" Key="/AltShiftF\d/ /AltShiftF1\d/ ScrollLock AltShiftIns" -- Key="ScrollLock AltShiftIns AltShiftF1 AltShiftF2 AltShiftF3 AltShiftF4 AltShiftF5 AltShiftF6 AltShiftF7 AltShiftF8 AltShiftF9 AltShiftF10 AltShiftF11 AltShiftF12" Key="/CtrlShiftF\d/ /CtrlShiftF1\d/" -- Key="CtrlShiftF1 CtrlShiftF2 CtrlShiftF3 CtrlShiftF4 CtrlShiftF5 CtrlShiftF6 CtrlShiftF7 CtrlShiftF8 CtrlShiftF9 CtrlShiftF10 CtrlShiftF11 CtrlShiftF12" Key="/CtrlAltShiftF\d/ /CtrlAltShiftF1\d/" -- Key="CtrlAltShiftF1 CtrlAltShiftF2 CtrlAltShiftF3 CtrlAltShiftF4 CtrlAltShiftF5 CtrlAltShiftF6 CtrlAltShiftF7 CtrlAltShiftF8 CtrlAltShiftF9 CtrlAltShiftF10 CtrlAltShiftF11 CtrlAltShiftF12" Key="CtrlAltShiftUp CtrlAltShiftDown CtrlAltShiftHome CtrlAltShiftEnd" Description="Запускает определённую верхнюю позицию в меню выбора lua-макросов (= Исполнить макрос = или = Execute a macro =)" {{ if (mf.substr(Object.Title,0,10)=="Меню файла") or (mf.substr(Object.Title,0,10)=="Меню папки") or (mf.substr(Object.Title,0,9)=="File Menu") or (mf.substr(Object.Title,0,11)=="Folder Menu") then Keys("Esc AKey") else if (mf.substr(Object.Title,0,16)=="Исполнить макрос") or (mf.substr(Object.Title,0,15)=="Execute a macro") then Keys("Home") k=mf.akey(1) if (mf.substr(Menu.Value,0,k:len())==k) or (mf.substr(Menu.Value,-k:len(),k:len())==k) then -- если ТОЛЬКО тот же шорткат (k:len() - длина шортката в символах, здесь от 5 до 15) Keys("Enter") else Keys("AKey") -- eval(mf.key(#AKey)) -- Key(#AKey) end end end }} Macro Area="Menu" Key="AltF3" Descr="В соответствующем меню нажатие AltF3 вызывает соответствующую команду" --Descr="В контекстном меню = File Menu = нажатие AltF3 передаёт файл на ассоциацию в ФАРе" -- Descr="В вызываемом по AltF3 меню = Выберите ассоциацию = повторное нажатие AltF3 вызывает последний пункт меню: 'edit:< WMIInfo.cmd !\!.!'" -- см. http://forum.farmanager.com/viewtopic.php?p=69926#p69926 {{ -- $if (substr(Title,0,9)=="File Menu") Esc eval(Key(#AKey)) $Else eval(Key(#AKey)) $end if mf.substr(Object.Title,0,10)=="Меню файла" or mf.substr(Object.Title,0,16)=="Исполнить макрос" or mf.substr(Object.Title,0,9)=="File Menu" or (mf.substr(Object.Title,0,15)=="Execute a macro") then Keys("Esc AltF3") -- eval(mf.key(#AKey)) else if (mf.substr(Object.Title,0,19)=="Выберите ассоциацию") or (mf.substr(Object.Title,0,18)=="Select association") then Keys("End") k=mf.akey(1,1) if (mf.substr(Menu.Value,0,k:len())==k) then -- если ТОЛЬКО тот же шорткат (k:len() - длина шортката в символах, здесь 5) Keys("Enter") end else Keys("Akey") -- eval(mf.key(#AKey)) -- Key(#AKey) end -- Key=("AltF3") -- eval(mf.key(#AKey)) end }} -- НЕЛЬЗЯ СДЕЛАТЬ: Macro Area="Menu" Key="AltF4" -- ПОСКОЛЬКУ ШОРТКАТ AltF4 В ЛЮБОМ МЕНЮ (И ВЫБОР АССОЦИАЦИИ ЭТО ТОЖЕ МЕНЮ) ПЕРЕВОДИТ ОБЪЕКТ В РЕДАКТОР... -- ПОЭТОМУ В ДАННОМ СЛУЧАЕ ИСПОЛЬЗУЕТСЯ не Alt-F4, а Alt-4 Macro Area="Menu" Key="Alt4" Descr="В соответствующем меню нажатие Alt4 вызывает соответствующую команду" --Descr="В контекстном меню = File Menu = нажатие Alt4 передаёт файл на ассоциацию в ФАРе" -- Descr="В вызываемом по AltF4 меню = Выберите ассоциацию = нажатие Alt4 вызывает последний пункт меню: 'edit:< WMIInfo.cmd !\!.!'" -- см. http://forum.farmanager.com/viewtopic.php?p=69926#p69926 {{ -- $if (substr(Title,0,9)=="File Menu") Esc eval(Key(#AKey)) $Else eval(Key(#AKey)) $end if mf.substr(Object.Title,0,10)=="Меню файла" or mf.substr(Object.Title,0,16)=="Исполнить макрос" or mf.substr(Object.Title,0,9)=="File Menu" or (mf.substr(Object.Title,0,15)=="Execute a macro") then Keys("Esc AltF4") -- eval(mf.key(#AKey)) else if (mf.substr(Object.Title,0,19)=="Выберите ассоциацию") or (mf.substr(Object.Title,0,18)=="Select association") then Keys("End") k=mf.akey(1,1) if (mf.substr(Menu.Value,0,k:len())==k) then -- если ТОЛЬКО тот же шорткат (k:len() - длина шортката в символах, здесь 4) Keys("Enter") end else Keys("Akey") -- eval(mf.key(#AKey)) -- Key(#AKey) end -- Key=("AltF3") -- eval(mf.key(#AKey)) end }} Macro Area="Menu" Key="AltF7" Descr="В меню выбора макроса поиска файла повторное нажатие того же шортката вызывает соответствующую команду" {{ mf.mmode(3,1) if (mf.substr(Object.Title,0,16)=="Исполнить макрос") or (mf.substr(Object.Title,0,15)=="Execute a macro") then Keys("Home") k=mf.akey(1,1) if (mf.substr(Menu.Value,0,k:len())==k) then -- если ТОЛЬКО тот же шорткат (k:len() - длина шортката в символах, здесь 5) Keys("Enter") end else Keys("AKey") -- eval(mf.key(#AKey)) -- Key(#AKey) end }} |