Add(MainForm,2953706,350,161)
{
Width=619
Position=1
}
Add(Edit,2099236,574,259)
{
Left=5
Top=5
Width=125
TabOrder=1
Text=""
ReadOnly=0
Point(onKeyDown)
Point(onKeyUp)
Point(doPosition)
}
Add(MultiElement,14326375,518,266)
{
@Hint=#6:HotKey|
link(onEvent1,2099236:doText2,[])
link(onEvent2,2099236:doPosition,[])
link(Data1,2850486:Var2,[])
link(Data2,1366203:Var1,[(531,254)(554,254)(554,300)])
}
BEGIN_SDK
Add(EditMulti,9389625,21,21)
{
EventCount=2
WorkCount=3
DataCount=2
VarCount=1
Width=671
Height=270
link(doWork1,7530269:doStrCatDlm,[(59,27)(59,55)])
link(doWork2,11037565:doEvent1,[(35,34)(35,132)])
link(doWork3,7841566:doWork1,[(245,41)(245,62)])
link(Var1,10467231:Value,[(27,277)(594,277)])
}
Add(MultiElement,7693555,441,140)
{
@Hint=#16:Подмена символов|
link(onEvent1,11794903:doEvent1,[])
link(Data1,12781747:Var1,[(447,113)(427,113)])
}
BEGIN_SDK
Add(EditMulti,12072838,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=1
Width=265
Height=137
link(doWork1,382155:doEnum,[(42,27)(42,104)])
link(Var1,6453291:Value,[(27,148)(223,148)])
}
Add(If_else,5677270,112,98)
{
link(onTrue,12579840:doCompare,[])
link(Op1,12072838:Data1,[(118,60)(27,60)])
link(Op2,382155:Index,[(125,84)(159,84)(159,141)(76,141)])
}
Add(ArrayEnum,382155,63,98)
{
link(onItem,5677270:doCompare,[])
link(Array,13443976:Array,[])
}
Add(StrList,13443976,49,35)
{
Strings=#3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |9:Caps Lock|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |5:Space|7:Page Up|9:Page Down|3:End|4:Home|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:0|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:A|1:B|1:C|1:D|1:E|1:F|1:G|1:H|1:I|1:J|1:K|1:L|1:M|1:N|1:O|1:P|1:Q|1:R|1:S|1:T|1:U|1:V|1:W|1:X|1:Y|1:Z|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |5:Num 0|5:Num 1|5:Num 2|5:Num 3|5:Num 4|5:Num 5|5:Num 6|5:Num 7|5:Num 8|5:Num 9|5:Num *|5:Num +|3:-1 |5:Num -|5:Num .|5:Num /|2:F1|2:F2|2:F3|2:F4|2:F5|2:F6|2:F7|2:F8|2:F9|3:F10|3:F11|3:F12|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |8:Num Lock|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:;|1:=|1:,|1:-|1:.|1:/|1:`|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:[|1:\|1:]|1:'|
Point(String)
Point(Index)
}
Add(If_else,12579840,168,98)
{
Op2=String(-1 )
link(onFalse,6453291:doValue,[])
}
Add(Memory,6453291,217,105)
{
link(onData,12072838:onEvent1,[(267,111)(267,27)])
}
END_SDK
Add(Hub,5674535,588,133)
{
InCount=4
link(onEvent1,9389625:onEvent1,[(611,139)(611,27)])
link(onEvent2,14117318:doClear,[])
}
Add(Memory,14117318,623,133)
{
Default=Integer(20)
link(onData,9389625:onEvent2,[(673,139)(673,34)])
}
Add(StrCat,9758821,525,140)
{
Point(doClear)
link(onStrCat,5674535:doEvent2,[])
link(Str1,14000183:Var2,[(531,124)(392,124)(392,176)(356,176)])
link(Str2,7693555:Var1,[(538,128)(479,128)(479,177)(447,177)])
}
Add(Hub,11037565,63,126)
{
link(onEvent1,1846046:doSplit,[])
link(onEvent2,7530269:doClear,[(87,139)(87,62)])
}
Add(StrCatDelim,7530269,98,49)
{
Delimiter="/"
Point(doClear)
link(Str1,9392242:Var3,[(104,34)(140,34)(140,92)])
link(Str2,9389625:Data1,[(111,35)(27,35)])
}
Add(GetDataEx,9392242,98,87)
{
link(Data,7530269:Result,[])
}
Add(MultiStrData,1846046,98,126)
{
Char="/"
Count=4
link(Str,9392242:Var2,[])
link(onPart2,2285087:doValue,[])
link(onPart3,2653328:doValue,[])
link(onPart4,13129206:doBetween,[])
}
Add(Memory,2653328,231,140)
{
}
Add(Hub,12361774,399,133)
{
link(onEvent1,5674535:doEvent1,[])
link(onEvent2,7693555:doWork1,[])
}
Add(MultiElement,14000183,343,133)
{
@Hint=#33:Определяет функциональную клавишу|
link(onEvent1,12361774:doEvent1,[])
link(onEvent2,2494162:doValue,[(387,146)(387,237)])
link(Data1,13034995:Var,[])
link(Data2,2285087:Value,[(356,122)(309,122)(309,177)(279,177)])
}
BEGIN_SDK
Add(EditMulti,6119611,21,21)
{
EventCount=2
WorkCount=1
DataCount=2
VarCount=2
Width=503
Height=172
link(doWork1,13309890:doData,[(28,27)(28,62)])
link(Var1,9631333:Value,[(27,177)(475,177)])
link(Var2,3307965:Value,[(34,183)(482,183)])
}
Add(If_else,5472985,168,56)
{
Op2=Integer(16)
link(onTrue,4287769:doEvent1,[])
link(onFalse,8574592:doCompare,[(208,69)(208,104)])
}
Add(If_else,8574592,224,98)
{
Op2=Integer(17)
link(onTrue,1276193:doEvent1,[])
link(onFalse,11837953:doCompare,[(268,111)(268,146)])
}
Add(If_else,11837953,280,140)
{
Op2=Integer(18)
link(onTrue,13771077:doEvent1,[])
link(onFalse,6119611:onEvent2,[(516,153)(516,34)])
}
Add(Hub,1276193,273,98)
{
link(onEvent1,8262805:doCompare,[])
link(onEvent2,2564591:doWork3,[(291,111)])
}
Add(Hub,13771077,329,140)
{
link(onEvent1,2235819:doCompare,[])
link(onEvent2,7774995:doWork3,[(347,153)])
}
Add(If_else,12957218,245,56)
{
Op2=Integer(160)
link(onTrue,14924914:doClear,[(285,62)(285,34)])
link(onFalse,15475597:doClear,[])
link(Op1,2299187:Var2,[])
}
Add(Memory,14924914,294,21)
{
Default=String(LShift + )
link(onData,930469:doWork2,[])
}
Add(Hub,4287769,217,56)
{
link(onEvent1,12957218:doCompare,[])
link(onEvent2,2564591:doWork2,[])
}
Add(Memory,15475597,301,56)
{
Default=String(RShift + )
link(onData,930469:doWork3,[(340,62)])
}
Add(If_else,8262805,301,98)
{
Op2=Integer(162)
link(onTrue,16022848:doClear,[(340,104)(340,76)])
link(onFalse,9092499:doClear,[])
link(Op1,14696342:Var2,[])
}
Add(Memory,9092499,357,98)
{
Default=String(RCtrl + )
link(onData,15159488:doWork3,[(403,104)])
}
Add(If_else,2235819,357,140)
{
Op2=Integer(164)
link(onTrue,709337:doClear,[(401,146)(401,118)])
link(onFalse,13495768:doClear,[])
link(Op1,14696342:Var3,[(363,35)])
}
Add(Memory,13495768,413,140)
{
Default=String(RAlt + )
link(onData,8507648:doWork3,[(459,146)])
}
Add(Memory,16022848,357,63)
{
Default=String(LCtrl + )
link(onData,7860081:doWork3,[(396,69)])
}
Add(Memory,709337,413,105)
{
Default=String(LAlt + )
link(onData,16580076:doWork3,[(452,111)])
}
Add(Memory,3307965,476,21)
{
Default=String(Shift + )
link(onData,6119611:onEvent1,[])
}
Add(HubEx,930469,336,21)
{
link(onEvent,7860081:doWork2,[])
}
Add(HubEx,7860081,392,21)
{
link(onEvent,15159488:doWork2,[])
}
Add(HubEx,15159488,399,21)
{
link(onEvent,16580076:doWork2,[])
}
Add(HubEx,16580076,448,21)
{
link(onEvent,8507648:doWork2,[])
}
Add(HubEx,8507648,455,21)
{
link(onEvent,3307965:doValue,[])
}
Add(Memory,9631333,469,63)
{
Default=String(Shift + )
}
Add(HubEx,7774995,343,63)
{
link(onEvent,9631333:doValue,[])
}
Add(GetDataEx,2299187,245,30)
{
Angle=3
link(Data,6119611:Data1,[(27,35)])
}
Add(GetDataEx,14696342,301,30)
{
Angle=3
link(Data,2299187:Var3,[])
}
Add(HubEx,2564591,287,63)
{
link(onEvent,7774995:doWork2,[])
}
Add(DoData,13309890,35,56)
{
link(onEventData,1877724:doConvert,[])
link(Data,6119611:Data2,[(41,38)(34,38)])
}
Add(If_else,4815090,119,56)
{
Type=2
Op2=Integer(5)
link(onTrue,5472985:doCompare,[])
}
Add(Convertor,1877724,77,56)
{
Mode=1
link(onResult,4815090:doCompare,[])
}
END_SDK
Add(MultiElement,6844311,476,231)
{
@Hint=#16:Подмена символов|
link(onEvent1,5674535:doEvent3,[(564,237)(564,153)])
link(Data1,2494162:Value,[(482,219)(442,219)(442,270)(405,270)])
}
BEGIN_SDK
Add(EditMulti,14211774,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=1
Width=265
Height=137
link(doWork1,12515898:doEnum,[(42,27)(42,104)])
link(Var1,8574787:Value,[(27,148)(223,148)])
}
Add(If_else,11519957,112,98)
{
link(onTrue,460414:doCompare,[])
link(Op1,14211774:Data1,[(118,85)(27,85)])
link(Op2,12515898:Index,[(125,84)(159,84)(159,141)(76,141)])
}
Add(ArrayEnum,12515898,63,98)
{
link(onItem,11519957:doCompare,[])
link(Array,12032759:Array,[])
}
Add(StrList,12032759,49,35)
{
Strings=#3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |9:Caps Lock|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |5:Space|7:Page Up|9:Page Down|3:End|4:Home|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:0|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:A|1:B|1:C|1:D|1:E|1:F|1:G|1:H|1:I|1:J|1:K|1:L|1:M|1:N|1:O|1:P|1:Q|1:R|1:S|1:T|1:U|1:V|1:W|1:X|1:Y|1:Z|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |5:Num 0|5:Num 1|5:Num 2|5:Num 3|5:Num 4|5:Num 5|5:Num 6|5:Num 7|5:Num 8|5:Num 9|5:Num *|5:Num +|3:-1 |5:Num -|5:Num .|5:Num /|2:F1|2:F2|2:F3|2:F4|2:F5|2:F6|2:F7|2:F8|2:F9|3:F10|3:F11|3:F12|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |8:Num Lock|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:;|1:=|1:,|1:-|1:.|1:/|1:`|3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |3:-1 |1:[|1:\|1:]|1:'|
Point(String)
Point(Index)
}
Add(If_else,460414,168,98)
{
Op2=String(-1 )
link(onFalse,8574787:doValue,[])
}
Add(Memory,8574787,217,105)
{
link(onData,14211774:onEvent1,[(267,111)(267,27)])
}
END_SDK
Add(Memory,2494162,399,231)
{
link(onData,9038655:doEvent1,[])
}
Add(MultiElement,7841566,469,56)
{
link(onEvent1,5674535:doEvent4,[(579,62)(579,160)])
link(Data1,9389625:Data2,[(475,38)(34,38)])
}
BEGIN_SDK
Add(EditMulti,3902066,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
VarCount=1
Width=181
Height=102
link(doWork1,15286653:doGetIndex,[(39,27)(39,90)])
link(Var1,15038973:Value,[(27,102)(153,102)])
}
Add(Memory,15038973,147,49)
{
Default=String()
link(onData,3902066:onEvent1,[(192,55)(192,27)])
}
Add(StrList,15286653,49,42)
{
Strings=#9:LShift + |9:RShift + |8:LCtrl + |8:RCtrl + |7:LAlt + |7:RAlt + |
Point(doGetIndex)
Point(StrToFind)
Point(onGetIndex)
link(StrToFind,3902066:Data1,[(69,31)(27,31)])
link(onGetIndex,7202467:doCompare,[])
}
Add(If_else,7202467,98,49)
{
Type=1
Op2=Integer(0)
link(onFalse,15038973:doClear,[])
}
END_SDK
Add(Hub,11794903,490,140)
{
link(onEvent1,9758821:doStrCat,[])
link(onEvent2,9889791:doString,[(514,153)(514,209)])
}
Add(GetDataEx,12781747,421,183)
{
Angle=3
link(Data,10958823:Var3,[])
}
Add(Memory,10467231,588,203)
{
Point(Data)
}
Add(Hub,9038655,448,231)
{
link(onEvent1,6844311:doWork1,[])
link(onEvent2,12673912:doWork3,[(571,244)])
}
Add(Memory,9030570,182,154)
{
link(onData,10548629:doWork2,[(224,160)(224,97)])
}
Add(Between,13129206,140,147)
{
Left=Integer(160)
Right=Integer(165)
link(onFalse,10548629:doWork1,[(217,153)(217,90)])
link(onTrue,9030570:doValue,[])
}
Add(FormatStr,9889791,525,203)
{
DataCount=3
Mask="%1%2%3"
link(onFString,12673912:doWork2,[])
link(Str1,14000183:Var1,[(531,198)(349,198)])
link(Str2,12781747:Var3,[(538,188)])
link(Str3,12036514:Var3,[(545,193)])
}
Add(GetIndexData,13034995,343,84)
{
link(onIndex,14000183:doWork1,[(380,90)(380,126)(331,126)(331,139)])
link(Data1,10958823:Var1,[(349,69)(321,69)])
link(Data2,12036514:Var1,[(356,72)(328,72)])
}
Add(ChanelToIndex,10548629,280,84)
{
link(onIndex,13034995:doIndex,[])
}
Add(GetDataEx,10958823,315,183)
{
Angle=3
link(Data,2653328:Value,[(237,188)])
}
Add(Memory,2285087,273,133)
{
}
Add(GetDataEx,12036514,322,188)
{
Angle=3
link(Data,9030570:Value,[(188,193)])
}
Add(HubEx,12673912,567,203)
{
link(onEvent,10467231:doValue,[])
}
END_SDK
Add(Keyboard,2247505,399,161)
{
}
Add(Timer,13957309,350,203)
{
Interval=100
link(onTimer,4392171:doEnum,[])
}
Add(ArrayEnum,4392171,399,203)
{
link(onItem,15392566:doCompare,[])
link(onEndEnum,8577875:doEvent1,[(425,216)(425,363)])
link(Array,2247505:Keys,[])
}
Add(If_else,15392566,448,203)
{
Op2=Integer(1)
link(onTrue,8694827:doEvent1,[])
link(onFalse,14326375:doWork3,[(473,216)(473,286)])
}
Add(StrCat,15996685,644,203)
{
Point(doClear)
link(Str1,11046736:Var3,[(650,194)(682,194)(682,243)])
link(Str2,2850486:Var3,[(657,153)(613,153)(613,243)])
}
Add(GetDataEx,11046736,644,238)
{
link(Data,15996685:Result,[])
}
Add(Hub,566813,518,364)
{
link(onEvent1,9075673:doGetIndex,[])
link(onEvent2,15996685:doClear,[(559,377)(559,216)])
}
Add(StrList,9075673,630,322)
{
@Hint=#5:HiAsm|
Point(onGetIndex)
Point(StrToFind)
Point(doGetIndex)
link(onChange,10927969:doString,[])
link(Str,11327399:Var2,[])
link(onGetIndex,3846055:doCompare,[])
link(StrToFind,11046736:Var2,[])
}
Add(Edit,16279678,728,329)
{
Left=5
Top=30
Width=125
Text=""
}
Add(If_else,3846055,679,329)
{
Type=4
Op2=Integer(0)
link(onTrue,16279678:doText,[])
}
Add(Memo,4673540,826,322)
{
Left=5
Top=55
Width=595
Height=200
}
Add(FormatStr,10927969,777,322)
{
DataCount=3
Mask="%3. %1: %2"
link(onFString,4673540:doAdd,[])
link(Str1,1366203:Var3,[(783,300)])
link(Str2,11327399:Var3,[(790,306)])
link(Str3,12827714:Count,[(797,311)(620,311)(620,365)(587,365)])
}
Add(GetDataEx,1366203,574,295)
{
link(Data,2099236:Text,[])
}
Add(Hub,8694827,490,203)
{
link(onEvent1,15996685:doStrCat,[])
link(onEvent2,14326375:doWork1,[(497,216)(497,272)])
}
Add(GetDataEx,11327399,630,301)
{
Angle=3
link(Data,14326375:Var1,[(524,306)])
}
Add(GetDataEx,2850486,518,238)
{
Angle=3
link(Data,4392171:Index,[(412,243)])
}
Add(CounterEx,12827714,581,322)
{
Min=-1
Max=100000
Point(doMin)
link(onNext,9075673:doAdd,[])
}
Add(Hub,8577875,490,357)
{
link(onEvent1,14326375:doWork2,[(497,363)(497,279)])
link(onEvent2,566813:doEvent1,[])
}
Add(Button,12703049,518,322)
{
Left=135
Top=5
link(onClick,12827714:doNext,[])
}
- возвращает название зажатых клавиш, но только по правилу: одиночная, функциональная + одиночная (пример: Alt+1);
- возвращает маску нажатых клавиш (код клавиш);
- понимает разницу между правыми функциональными клавишами и левыми (пример: LAlt + 1);
- список названия клавиш возможно редактировать;
- в списке сопоставлены кода клавиш только к латинским буквам;
- не реализовано тройное нажатие клавиш (пример: LAlt + Shift + 1), но реализовать не сложно добавив пару условий;
- реализовано определение ранее сохраненных комбинаций.
В кратце: можно определить нажатые клавиши, сохранить их и потом проверить нажаты ли они.