Тема: AHK: Управление компьютером с помощью джойстика
Создал новую тему. Ибо негоже в теме про тернарный условный оператор вести дискуссии о джойстике.
Скрипт еще сырой , но уже худо-бедно работает.
Из проблем только:
Некорректная работа скрипта после лабела SendThisHotkey (при изменении сектора %f% теряется и не изменяет цвет обратно).
Наслоение контролов с текстом на друг друга.
Неопытность.)))
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Include, C:\Program Files\AutoHotkey\lib\Gdip.ahk
;==============================================================================================================================
; joy9=toggle keys//mouse
; hold joy9=toggle on//off
;==============================================================================================================================
;Keys
; joy6=space
; joy8=Enter
; joy5=backspace
; (joyX & JoyY)&(joy 1|2|3|4|6|8) = alphabetF
; joy7=change language
; hold joy7=toggle caps
;==============================================================================================================================
;Mouse
; (joyX & JoyY) = mouse
; 1=middle
; 2=left
; 3=right
; joy8=wheeldown
; joy6=wheelup
;==============================================================================================================================
;settings
;general
div2=1 ; size (1>2)
xPos=100
yPos=100
caps=0
LangNum=3
LangSetRus()
mode=1 ; 1 - keys 2 - mouse 3 - off
;==============================================================================================================================
;mouse
JoyMultiplier = 0.30
JoyThreshold = 3
InvertYAxis := false
ButtonLeft = 2
ButtonRight = 3
ButtonMiddle = 1
WheelDelay = 250
JoystickNumber = 1
;==============================================================================================================================
fontsize:=20//div2
xy1:=221.0//div2
xy2:=253.5//div2
xy3:=286.0//div2
xy4:=344.5//div2
xy5:=377.0//div2
xy6:=409.5//div2
xy7:=403.0//div2
xy8:=435.5//div2
xy9:=468.0//div2
xy10:=97.5//div2
xy11:=130.0//div2
xy12:=162.5//div2
xy13:=39.0//div2
xy14:=71.5//div2
xy15:=104.0//div2
xy16:=136.5//div2
xy17:=169.0//div2
xy18:=231//div2
xy19:=276//div2
xy20:=320//div2
xy21:=191//div2
xy22:=323//div2
xy23:=190//div2
ww:=28//div2
hh:=37/div2
;============================================================================================================================
ajoy5_0={backspace}
ajoy6_0={Space}
ajoy8_0={Enter}
ajoy1_0={Left}
ajoy2_0={down}
ajoy3_0={Right}
ajoy4_0={up}
Hotkey,joy9,joy9
(mode=1) ? hotkeyson() : mode=2 ? JoyToMouseOn()
gosub start
if mode=1
{
SetTimer,circle,25
gui,2:show,x%xpos% y%ypos% w500 h500 NA ; <====================================
}
return
;==============================================================================================================================
HotKeysOn()
{
global mode=1
Hotkey,joy1,joy1,on
Hotkey,joy2,joy2,on
Hotkey,joy3,joy3,on
Hotkey,joy4,joy4,on
Hotkey,joy5,joy5,on
Hotkey,joy6,joy6,on
Hotkey,joy7,joy7,on
Hotkey,joy8,joy8,on
SetTimer,circle,40,on
}
HotKeysOff()
{
Hotkey,joy1,joy1,off
Hotkey,joy2,joy2,off
Hotkey,joy3,joy3,off
Hotkey,joy4,joy4,off
Hotkey,joy5,joy5,off
Hotkey,joy6,joy6,off
Hotkey,joy7,joy7,off
Hotkey,joy8,joy8,off
SetTimer,circle,off
}
GuiOff()
{
gui,1:hide
gui,2:hide
}
GuiOn()
{
global
gui,1:show,NA x%xpos% y%ypos%
gui,2:Show,Na x%xpos% y%ypos%
}
JoyToMouseOn()
{
global
mode=2
JoystickPrefix = %JoystickNumber%Joy
Hotkey, %JoystickPrefix%%ButtonLeft%, ButtonLeft ,on
Hotkey, %JoystickPrefix%%ButtonRight%, ButtonRight ,on
Hotkey, %JoystickPrefix%%ButtonMiddle%, ButtonMiddle ,on
Hotkey, joy6,WheelUp,on
Hotkey, joy8,WheelDown,on
JoyThresholdUpper := 50 + JoyThreshold
JoyThresholdLower := 50 - JoyThreshold
if InvertYAxis
YAxisMultiplier = -1
else
YAxisMultiplier = 1
SetTimer, WatchJoystick, 10 ,on
return
}
JoyToMouseOff()
{
global
Hotkey, %JoystickPrefix%%ButtonLeft%, ButtonLeft ,off
Hotkey, %JoystickPrefix%%ButtonRight%, ButtonRight ,off
Hotkey, %JoystickPrefix%%ButtonMiddle%, ButtonMiddle ,off
SetTimer, WatchJoystick ,off
Hotkey, joy6,off
Hotkey, joy8,off
}
JoyToMouseSwap()
{
global
if mode=1
{
GuiOff()
HotKeysOff()
JoyToMouseOn()
return
}
if mode=2
{
GuiOn()
JoyToMouseOff()
HotKeysOn()
return
}
}
WorkSwap()
{
global
if mode=1
{
mode=3
GuiOff()
HotKeysOff()
return
}
if mode=2
{
mode=3
JoyToMouseOff()
return
}
if mode=3
{
JoyToMouseOn()
ToolTip,Mouse mode Enabled
sleep 700
ToolTip
return
}
}
;===========================================================================================================================
joy5:
joy1:
joy2:
joy3:
joy4:
Joy6:
joy8:
gosub SendThisHotkey
if ff!=0
return
sleep 250
SetTimer,SendThisHotkey,40,on
KeyWait,%A_ThisHotkey%,u
SetTimer,SendThisHotkey,off
return
SendThisHotkey:
send,% a%A_ThisHotkey%_%f%
if ff!=0
{
Ctrl=a%A_ThisHotkey%_%f%
gui,2:font,cRed
GuiControl,2:font,%Ctrl%
sleep 100
gui,2:font,cWhite
GuiControl,2:font,%Ctrl%
}
return
WheelDown:
WheelUp:
SendThisLabel:
send,{%a_thislabel%}
sleep 50
getkeystate,state,%a_thishotkey%
if state = d
goto %a_thislabel%
return
joy7:
KeyWait,joy7,u t0.2
if errorlevel
(caps = 0) ? caps:=1 : caps:=0
if !errorlevel
(Langnum = 3) ? Langnum:=1 : Langnum++
if caps = 1
(langnum = 1) ? LangSetRusCaps() : (langnum = 2) ? LangSetEngCaps() : (langnum = 3) ? LangSetNumCaps()
if caps = 0
(langnum = 1) ? LangSetRus() : (langnum = 2) ? LangSetEng() : (langnum = 3) ? LangSetNum()
ToolTip,Language=%lang%`nCaps=%caps%
GuiControlLang()
return
;==============================================================================================================================
Joy9:
KeyWait,joy9,u t0.5
if errorlevel
WorkSwap()
else
JoyToMouseSwap()
return
;==============================================================================================================================
;watch mouse
mJoy8:
send,{WheelDown}
return
mJoy6:
send,{Wheelup}
return
ButtonLeft:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, left,,, 1, 0, D ; Hold down the left mouse button.
SetTimer, WaitForLeftButtonUp, 10
return
ButtonRight:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, right,,, 1, 0, D ; Hold down the right mouse button.
SetTimer, WaitForRightButtonUp, 10
return
ButtonMiddle:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, middle,,, 1, 0, D ; Hold down the right mouse button.
SetTimer, WaitForMiddleButtonUp, 10
return
WaitForLeftButtonUp:
if GetKeyState(JoystickPrefix . ButtonLeft)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForLeftButtonUp, off
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, left,,, 1, 0, U ; Release the mouse button.
return
WaitForRightButtonUp:
if GetKeyState(JoystickPrefix . ButtonRight)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForRightButtonUp, off
MouseClick, right,,, 1, 0, U ; Release the mouse button.
return
WaitForMiddleButtonUp:
if GetKeyState(JoystickPrefix . ButtonMiddle)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForMiddleButtonUp, off
MouseClick, middle,,, 1, 0, U ; Release the mouse button.
return
WatchJoystick:
MouseNeedsToBeMoved := false ; Set default.
SetFormat, float, 03
GetKeyState, joyx, %JoystickNumber%JoyX
GetKeyState, joyy, %JoystickNumber%JoyY
if joyx > %JoyThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - JoyThresholdUpper
}
else if joyx < %JoyThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - JoyThresholdLower
}
else
DeltaX = 0
if joyy > %JoyThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - JoyThresholdUpper
}
else if joyy < %JoyThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - JoyThresholdLower
}
else
DeltaY = 0
if MouseNeedsToBeMoved
{
SetMouseDelay, -1 ; Makes movement smoother.
MouseMove, DeltaX * JoyMultiplier, DeltaY * JoyMultiplier * YAxisMultiplier, 0, R
}
return
;==============================================================================================================================
start:
If !pToken := Gdip_Startup()
{
MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
ExitApp
}
OnExit, Exit1
Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, 1:Show, NA x%xpos% y%ypos%
hwnd1 := WinExist()
GUI,2:Font,s%fontsize% cFFFFFF,Trebuchet MS
gui,2:add,text,x%xy1% y%xy14% vajoy1_10 w%ww% h%hh% ,%ajoy1_10% ;
gui,2:add,text,x%xy2% y%xy15% vajoy2_10 w%ww% h%hh% ,%ajoy2_10% ;
gui,2:add,text,x%xy3% y%xy14% vajoy3_10 w%ww% h%hh% ,%ajoy3_10% ;
gui,2:add,text,x%xy2% y%xy13% vajoy4_10 w%ww% h%hh% ,%ajoy4_10% ;====
gui,2:add,text,x%xy4% y%xy16% vajoy1_12 w%ww% h%hh% ,%ajoy1_12% ;
gui,2:add,text,x%xy5% y%xy17% vajoy2_12 w%ww% h%hh% ,%ajoy2_12% ;
gui,2:add,text,x%xy6% y%xy16% vajoy3_12 w%ww% h%hh% ,%ajoy3_12% ;
gui,2:add,text,x%xy5% y%xy15% vajoy4_12 w%ww% h%hh% ,%ajoy4_12% ;====
gui,2:add,text,x%xy7% y%xy2% vajoy1_2 w%ww% h%hh% ,%ajoy1_2% ;
gui,2:add,text,x%xy8% y%xy3% vajoy2_2 w%ww% h%hh% ,%ajoy2_2% ;
gui,2:add,text,x%xy9% y%xy2% vajoy3_2 w%ww% h%hh% ,%ajoy3_2% ;
gui,2:add,text,x%xy8% y%xy1% vajoy4_2 w%ww% h%hh% ,%ajoy4_2% ;====
gui,2:add,text,x%xy4% y%xy5% vajoy1_22 w%ww% h%hh% ,%ajoy1_22% ;
gui,2:add,text,x%xy5% y%xy6% vajoy2_22 w%ww% h%hh% ,%ajoy2_22% ;
gui,2:add,text,x%xy6% y%xy5% vajoy3_22 w%ww% h%hh% ,%ajoy3_22% ;
gui,2:add,text,x%xy5% y%xy4% vajoy4_22 w%ww% h%hh% ,%ajoy4_22% ;====
gui,2:add,text,x%xy1% y%xy8% vajoy1_20 w%ww% h%hh% ,%ajoy1_20% ;
gui,2:add,text,x%xy2% y%xy9% vajoy2_20 w%ww% h%hh% ,%ajoy2_20% ;
gui,2:add,text,x%xy3% y%xy8% vajoy3_20 w%ww% h%hh% ,%ajoy3_20% ;
gui,2:add,text,x%xy2% y%xy7% vajoy4_20 w%ww% h%hh% ,%ajoy4_20% ;====
gui,2:add,text,x%xy10% y%xy5% vajoy1_21 w%ww% h%hh% ,%ajoy1_21% ;
gui,2:add,text,x%xy11% y%xy6% vajoy2_21 w%ww% h%hh% ,%ajoy2_21% ;
gui,2:add,text,x%xy12% y%xy5% vajoy3_21 w%ww% h%hh% ,%ajoy3_21% ;
gui,2:add,text,x%xy11% y%xy4% vajoy4_21 w%ww% h%hh% ,%ajoy4_21% ;====
gui,2:add,text,x%xy13% y%xy2% vajoy1_1 w%ww% h%hh% ,%ajoy1_1% ;
gui,2:add,text,x%xy14% y%xy3% vajoy2_1 w%ww% h%hh% ,%ajoy2_1% ;
gui,2:add,text,x%xy15% y%xy2% vajoy3_1 w%ww% h%hh% ,%ajoy3_1% ;
gui,2:add,text,x%xy14% y%xy1% vajoy4_1 w%ww% h%hh% ,%ajoy4_1% ;====
gui,2:add,text,x%xy10% y%xy16% vajoy1_11 w%ww% h%hh% ,%ajoy1_11% ;
gui,2:add,text,x%xy11% y%xy17% vajoy2_11 w%ww% h%hh% ,%ajoy2_11% ;
gui,2:add,text,x%xy12% y%xy16% vajoy3_11 w%ww% h%hh% ,%ajoy3_11% ;
gui,2:add,text,x%xy11% y%xy15% vajoy4_11 w%ww% h%hh% ,%ajoy4_11% ;====
gui,2:add,text,x%xy18% y%xy16% vajoy6_10 w%ww% h%hh% ,%ajoy6_10% ;1
gui,2:add,text,x%xy19% y%xy16% vajoy8_10 w%ww% h%hh% ,%ajoy8_10% ;2
gui,2:add,text,x%xy20% y%xy17% vajoy6_12 w%ww% h%hh% ,%ajoy6_12% ;3
gui,2:add,text,x%xy4% y%xy21% vajoy8_12 w%ww% h%hh% ,%ajoy8_12% ;4
gui,2:add,text,x%xy5% y%xy18% vajoy6_2 w%ww% h%hh% ,%ajoy6_2% ;5
gui,2:add,text,x%xy5% y%xy19% vajoy8_2 w%ww% h%hh% ,%ajoy8_2% ;6
gui,2:add,text,x%xy4% y%xy22% vajoy6_22 w%ww% h%hh% ,%ajoy6_22% ;7
gui,2:add,text,x%xy20% y%xy4% vajoy8_22 w%ww% h%hh% ,%ajoy8_22% ;8
gui,2:add,text,x%xy19% y%xy5% vajoy6_20 w%ww% h%hh% ,%ajoy6_20% ;9
gui,2:add,text,x%xy18% y%xy5% vajoy8_20 w%ww% h%hh% ,%ajoy8_20% ;0
gui,2:add,text,x%xy23% y%xy4% vajoy6_21 w%ww% h%hh% ,%ajoy6_21% ;.
gui,2:add,text,x%xy12% y%xy22% vajoy8_21 w%ww% h%hh% ,%ajoy8_21% ;,
gui,2:add,text,x%xy11% y%xy19% vajoy6_1 w%ww% h%hh% ,%ajoy6_1% ;!
gui,2:add,text,x%xy11% y%xy18% vajoy8_1 w%ww% h%hh% ,%ajoy8_1% ;?
gui,2:add,text,x%xy12% y%xy21% vajoy6_11 w%ww% h%hh% ,%ajoy6_11% ;:
gui,2:add,text,x%xy23% y%xy17% vajoy8_11 w%ww% h%hh% ,%ajoy8_11% ;;
Gui, 2:Color,black
Gui, 2: +Lastfound +AlwaysOnTop -Border -Caption +ToolWindow
WinSet,TransColor,black
return
circle:
ff=%f%
gosub get
if f=%ff%
return
if f = 0
pBitmap := Gdip_CreateBitmapFromFile("фон0.png")
if f = 10
pBitmap := Gdip_CreateBitmapFromFile("фон1.png")
if f = 12
pBitmap := Gdip_CreateBitmapFromFile("фон2.png")
if f = 2
pBitmap := Gdip_CreateBitmapFromFile("фон3.png")
if f = 22
pBitmap := Gdip_CreateBitmapFromFile("фон4.png")
if f = 20
pBitmap := Gdip_CreateBitmapFromFile("фон5.png")
if f = 21
pBitmap := Gdip_CreateBitmapFromFile("фон6.png")
if f = 1
pBitmap := Gdip_CreateBitmapFromFile("фон7.png")
if f = 11
pBitmap := Gdip_CreateBitmapFromFile("фон8.png")
gdi:
If !pBitmap
{
MsgBox, 48, File loading error!, Could not load the image specified
ExitApp
}
Width := Gdip_GetImageWidth(pBitmap), Height := Gdip_GetImageHeight(pBitmap)
hbm := CreateDIBSection(Width//div2, Height//div2)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetInterpolationMode(G, 7)
Gdip_DrawImage(G, pBitmap, 0, 0, Width//div2, Height//div2, 0, 0, Width, Height)
UpdateLayeredWindow(hwnd1, hdc, xpos, ypos, Width//div2, Height//div2)
SelectObject(hdc, obm)
DeleteObject(hbm)
DeleteDC(hdc)
Gdip_DeleteGraphics(G)
Gdip_DisposeImage(pBitmap)
Return
Exit1:
Gdip_Shutdown(pToken)
ExitApp
Return
;==============================================================================================================================
get:
f=0
GetKeyState, joyx, JoyX
GetKeyState, joyy, JoyY
if joyx < 47
EnvAdd,f,1
if joyx > 53
EnvAdd,f,2
if joyy < 47
EnvAdd,f,10
if joyy > 53
EnvAdd,f,20
return
;==============================================================================================================================
GuiControlLang()
{
global
if PrevFontSize!=FontSize
{
PrevFontSize:=FontSize
GUI,2:Font,s%fontsize% cFFFFFF,Trebuchet MS
guicontrol,2:font,ajoy1_10
guicontrol,2:font,ajoy2_10
guicontrol,2:font,ajoy3_10
guicontrol,2:font,ajoy4_10
guicontrol,2:font,ajoy1_12
guicontrol,2:font,ajoy2_12
guicontrol,2:font,ajoy3_12
guicontrol,2:font,ajoy4_12
guicontrol,2:font,ajoy1_2
guicontrol,2:font,ajoy2_2
guicontrol,2:font,ajoy3_2
guicontrol,2:font,ajoy4_2
guicontrol,2:font,ajoy1_22
guicontrol,2:font,ajoy2_22
guicontrol,2:font,ajoy3_22
guicontrol,2:font,ajoy4_22
guicontrol,2:font,ajoy1_20
guicontrol,2:font,ajoy2_20
guicontrol,2:font,ajoy3_20
guicontrol,2:font,ajoy4_20
guicontrol,2:font,ajoy1_21
guicontrol,2:font,ajoy2_21
guicontrol,2:font,ajoy3_21
guicontrol,2:font,ajoy4_21
guicontrol,2:font,ajoy1_1
guicontrol,2:font,ajoy2_1
guicontrol,2:font,ajoy3_1
guicontrol,2:font,ajoy4_1
guicontrol,2:font,ajoy1_11
guicontrol,2:font,ajoy2_11
guicontrol,2:font,ajoy3_11
guicontrol,2:font,ajoy4_11
/*
guicontrol,2:font,ajoy6_10
guicontrol,2:font,ajoy8_10
guicontrol,2:font,ajoy6_12
guicontrol,2:font,ajoy8_12
guicontrol,2:font,ajoy6_2
guicontrol,2:font,ajoy8_2
guicontrol,2:font,ajoy6_22
guicontrol,2:font,ajoy8_22
guicontrol,2:font,ajoy6_20
guicontrol,2:font,ajoy8_20
guicontrol,2:font,ajoy6_21
guicontrol,2:font,ajoy8_21
guicontrol,2:font,ajoy6_1
guicontrol,2:font,ajoy8_1
guicontrol,2:font,ajoy6_11
guicontrol,2:font,ajoy8_11
*/
}
guicontrol,2:text,ajoy1_10 ,%ajoy1_10%
guicontrol,2:text,ajoy2_10 ,%ajoy2_10%
guicontrol,2:text,ajoy3_10 ,%ajoy3_10%
guicontrol,2:text,ajoy4_10 ,%ajoy4_10%
guicontrol,2:text,ajoy1_12 ,%ajoy1_12%
guicontrol,2:text,ajoy2_12 ,%ajoy2_12%
guicontrol,2:text,ajoy3_12 ,%ajoy3_12%
guicontrol,2:text,ajoy4_12 ,%ajoy4_12%
guicontrol,2:text,ajoy1_2 ,%ajoy1_2%
guicontrol,2:text,ajoy2_2 ,%ajoy2_2%
guicontrol,2:text,ajoy3_2 ,%ajoy3_2%
guicontrol,2:text,ajoy4_2 ,%ajoy4_2%
guicontrol,2:text,ajoy1_22 ,%ajoy1_22%
guicontrol,2:text,ajoy2_22 ,%ajoy2_22%
guicontrol,2:text,ajoy3_22 ,%ajoy3_22%
guicontrol,2:text,ajoy4_22 ,%ajoy4_22%
guicontrol,2:text,ajoy1_20 ,%ajoy1_20%
guicontrol,2:text,ajoy2_20 ,%ajoy2_20%
guicontrol,2:text,ajoy3_20 ,%ajoy3_20%
guicontrol,2:text,ajoy4_20 ,%ajoy4_20%
guicontrol,2:text,ajoy1_21 ,%ajoy1_21%
guicontrol,2:text,ajoy2_21 ,%ajoy2_21%
guicontrol,2:text,ajoy3_21 ,%ajoy3_21%
guicontrol,2:text,ajoy4_21 ,%ajoy4_21%
guicontrol,2:text,ajoy1_1 ,%ajoy1_1%
guicontrol,2:text,ajoy2_1 ,%ajoy2_1%
guicontrol,2:text,ajoy3_1 ,%ajoy3_1%
guicontrol,2:text,ajoy4_1 ,%ajoy4_1%
guicontrol,2:text,ajoy1_11 ,%ajoy1_11%
guicontrol,2:text,ajoy2_11 ,%ajoy2_11%
guicontrol,2:text,ajoy3_11 ,%ajoy3_11%
guicontrol,2:text,ajoy4_11 ,%ajoy4_11%
guicontrol,2:text,ajoy6_10 ,%ajoy6_10%
guicontrol,2:text,ajoy8_10 ,%ajoy8_10%
guicontrol,2:text,ajoy6_12 ,%ajoy6_12%
guicontrol,2:text,ajoy8_12 ,%ajoy8_12%
guicontrol,2:text,ajoy6_2 ,%ajoy6_2%
guicontrol,2:text,ajoy8_2 ,%ajoy8_2%
guicontrol,2:text,ajoy6_22 ,%ajoy6_22%
guicontrol,2:text,ajoy8_22 ,%ajoy8_22%
guicontrol,2:text,ajoy6_20 ,%ajoy6_20%
guicontrol,2:text,ajoy8_20 ,%ajoy8_20%
guicontrol,2:text,ajoy6_21 ,%ajoy6_21%
guicontrol,2:text,ajoy8_21 ,%ajoy8_21%
guicontrol,2:text,ajoy6_1 ,%ajoy6_1%
guicontrol,2:text,ajoy8_1 ,%ajoy8_1%
guicontrol,2:text,ajoy6_11 ,%ajoy6_11%
guicontrol,2:text,ajoy8_11 ,%ajoy8_11%
}
;==============================================================================================================================
LangSetRus()
{
global
fontsize:=20//div2
lang=Rus
ajoy1_10=а
ajoy4_10=б
ajoy3_10=в
ajoy2_10=г
ajoy1_12=д
ajoy4_12=е
ajoy3_12=ж
ajoy2_12=з
ajoy1_2=и
ajoy4_2=й
ajoy3_2=к
ajoy2_2=л
ajoy1_22=м
ajoy4_22=н
ajoy3_22=о
ajoy2_22=п
ajoy1_20=р
ajoy4_20=с
ajoy3_20=т
ajoy2_20=у
ajoy1_21=ф
ajoy4_21=х
ajoy3_21=ц
ajoy2_21=ч
ajoy1_1=ш
ajoy4_1=щ
ajoy3_1=ъ
ajoy2_1=ы
ajoy1_11=ь
ajoy4_11=э
ajoy3_11=ю
ajoy2_11=я
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
LangSetEng()
{
global
lang=Eng
ajoy1_10=a
ajoy4_10=b
ajoy3_10=c
ajoy2_10=d
ajoy1_12=e
ajoy4_12=f
ajoy3_12=g
ajoy2_12=h
ajoy1_2=j
ajoy4_2=k
ajoy3_2=l
ajoy2_2=m
ajoy1_22=n
ajoy4_22=o
ajoy3_22=p
ajoy2_22=q
ajoy1_20=r
ajoy4_20=s
ajoy3_20=t
ajoy2_20=u
ajoy1_21=v
ajoy4_21=w
ajoy3_21=x
ajoy2_21=y
ajoy1_1=z
ajoy4_1=
ajoy3_1=
ajoy2_1=
ajoy1_11=
ajoy4_11=
ajoy3_11=
ajoy2_11=
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
LangSetNum()
{
global
fontsize:=20//div2
lang=Num
ajoy1_10= -
ajoy4_10= +
ajoy3_10=)
ajoy2_10=(
ajoy1_12= _
ajoy4_12= =
ajoy3_12=@
ajoy2_12=#
ajoy1_2=^
ajoy4_2=*
ajoy3_2=$
ajoy2_2=`%
ajoy1_22="
ajoy4_22=№
ajoy3_22=
ajoy2_22=
ajoy1_20=
ajoy4_20=
ajoy3_20=
ajoy2_20=
ajoy1_21=
ajoy4_21=
ajoy3_21=
ajoy2_21=
ajoy1_1=
ajoy4_1=
ajoy3_1=
ajoy2_1=
ajoy1_11=
ajoy4_11=
ajoy3_11=
ajoy2_11=
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
;==============================================================================================================================
LangSetRusCaps()
{
global
fontsize:=20//div2
lang=Rus
ajoy1_10=А
ajoy4_10=Б
ajoy3_10=В
ajoy2_10=Г
ajoy1_12=Д
ajoy4_12=Е
ajoy3_12=Ж
ajoy2_12=З
ajoy1_2=И
ajoy4_2=Й
ajoy3_2=К
ajoy2_2=Л
ajoy1_22=М
ajoy4_22=Н
ajoy3_22=О
ajoy2_22=П
ajoy1_20=Р
ajoy4_20=С
ajoy3_20=Т
ajoy2_20=У
ajoy1_21=Ф
ajoy4_21=Х
ajoy3_21=Ц
ajoy2_21=Ч
ajoy1_1=Ш
ajoy4_1=Щ
ajoy3_1=Ъ
ajoy2_1=Ы
ajoy1_11=Ь
ajoy4_11=Э
ajoy3_11=Ю
ajoy2_11=Я
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
LangSetEngCaps()
{
global
lang=Eng
ajoy1_10=A
ajoy4_10=B
ajoy3_10=C
ajoy2_10=D
ajoy1_12=E
ajoy4_12=F
ajoy3_12=G
ajoy2_12=H
ajoy1_2=J
ajoy4_2=K
ajoy3_2=L
ajoy2_2=M
ajoy1_22=N
ajoy4_22=O
ajoy3_22=P
ajoy2_22=Q
ajoy1_20=R
ajoy4_20=S
ajoy3_20=T
ajoy2_20=U
ajoy1_21=V
ajoy4_21=W
ajoy3_21=X
ajoy2_21=Y
ajoy1_1=Z
ajoy4_1=
ajoy3_1=
ajoy2_1=
ajoy1_11=
ajoy4_11=
ajoy3_11=
ajoy2_11=
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
LangSetNumCaps()
{
global
fontsize:=10//div2
lang=Num
ajoy1_10=(¬_¬)
ajoy4_10=(◡‿◡✿)
ajoy3_10=(◕‿◕✿)
ajoy2_10=(✖╭╮✖)
ajoy1_12=(≧◡≦)
ajoy4_12=(✿◠‿◠)
ajoy3_12=(◑‿◐)
ajoy2_12=(◕‿-)
ajoy1_2=✖‿✖
ajoy4_2=ಠ_ಠ
ajoy3_2=(╥_╥)
ajoy2_2=(╯_╰)
ajoy1_22=(╯3╰)
ajoy4_22=(╯▽╰)
ajoy3_22=凸(¬‿¬)凸
ajoy2_22=┌∩┐(◣_◢)┌∩┐
ajoy1_20=(⊙▂⊙)
ajoy4_20=(∪ ◡ ∪)
ajoy3_20=(≧ω≦)
ajoy2_20=(。❤‿❤。)
ajoy1_21=(⋋▂⋌)
ajoy4_21=(•̪●)
ajoy3_21=(॓_॔)
ajoy2_21=(︶ω︶)
ajoy1_1=(─‿‿─)
ajoy4_1=(⊙_◎)
ajoy3_1=d(-_-)b
ajoy2_1=(。◕‿◕。)
ajoy1_11=‹(•¿•)›
ajoy4_11=(╯︵╰,)
ajoy3_11=(︶︿︶)
ajoy2_11=(∩︵∩)
ajoy6_10=1
ajoy8_10=2
ajoy6_12=3
ajoy8_12=4
ajoy6_2=5
ajoy8_2=6
ajoy6_22=7
ajoy8_22=8
ajoy6_20=9
ajoy8_20=0
ajoy6_21=.
ajoy8_21=,
ajoy6_1=!
ajoy8_1=?
ajoy6_11= :
ajoy8_11=;
}
;==============================================================================================================================
2GuiEscape:
2GuiClose:
Esc::
ExitApp
Также прикрепил архив со всем что может понадобиться(фон тут).
Жду любых пожеланий и замечаний.