1 (изменено: shahlik002, 2017-06-18 21:22:53)

Тема: 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

Также прикрепил архив со всем что может понадобиться(фон тут).
Жду любых пожеланий и замечаний.

Post's attachments

5gui.rar 193.42 kb, 2 downloads since 2017-06-18 

You don't have the permssions to download the attachments of this post.

2

Re: AHK: Управление компьютером с помощью джойстика

Где-то я уже видел подобный скрипт, не могу найти.

...

Нашел.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3

Re: AHK: Управление компьютером с помощью джойстика

Alectric
Где то я 3 версию под другим ником выкладывал , но не в этой теме.