1 (изменено: ioadh, 2023-06-13 19:19:58)

Тема: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Здравствуйте. Хочу добавить в свой код кнопку-переключатель между режимами a, s, d, чтоб использовать только конкретные 2 бинда(numpad9, numpad6) чтоб изменять значения всех нужных показателей(один режим изменяемый, остальные блокируются) и кнопку для сохранения после reload уже изменённых значений.


;--------------------------------------------------------------------------------

global a := 100

global az := a + 100

global s := 300

global sx := s + 100

global d := 500

global dc := d + 100

;--------------------------------------------------------------------------------

g_x := A_ScreenWidth * 0.005
g_y := A_ScreenHeight * 0.30

Gui, Dspl:+AlwaysOnTop -Caption +LastFound -SysMenu +ToolWindow -DPIScale +E0x20
Gui, Dspl:Add, Progress, c839DD5 Background141414, 0
Gui, Dspl:Color, 151515
Gui, Dspl:Show, x%g_x% y%g_y% w120 h100 NoActivate
WinSet, Transparent, 210

;--------------------------------------------------------------------------------

Gui, nmbr:+AlwaysOnTop -Caption +LastFound -SysMenu +ToolWindow -DPIScale +E0x20
Gui, nmbr:Color, 000000
Gui, nmbr:Font, s12 q5, Montserrat Medium
Gui, nmbr:Add, Text, x10 y10 w48 va cWhite +Center, %a%
Gui, nmbr:Add, Text, x70 y10 w40 vaz cffa600 +Center, [%az%]
Gui, nmbr:Show, x%g_x% y%g_y% w115 h95 NoActivate
WinSet, TransColor, 000000

;--------------------------------------------------------------------------------

Gui, nmbr:+AlwaysOnTop -Caption +LastFound -SysMenu +ToolWindow -DPIScale +E0x20
Gui, nmbr:Color, 000000
Gui, nmbr:Font, s12 q5, Montserrat Medium
Gui, nmbr:Add, Text, x10 y35 w48 vs cWhite +Center, %s%
Gui, nmbr:Add, Text, x70 y35 w40 vsx cffa600 +Center, [%sx%]
Gui, nmbr:Show, x%g_x% y%g_y% w115 h95 NoActivate
WinSet, TransColor, 000000

;--------------------------------------------------------------------------------

Gui, nmbr:+AlwaysOnTop -Caption +LastFound -SysMenu +ToolWindow -DPIScale +E0x20
Gui, nmbr:Color, 000000
Gui, nmbr:Font, s12 q5, Montserrat Medium
Gui, nmbr:Add, Text, x10 y60 w48 vd cWhite +Center, %d%
Gui, nmbr:Add, Text, x70 y60 w40 vdc cffa600 +Center, [%dc%]
Gui, nmbr:Show, x%g_x% y%g_y% w115 h95 NoActivate
WinSet, TransColor, 000000

;--------------------------------------------------------------------------------

*~Numpad9::
a++
az--
GuiControl, nmbr:Text, a, %a%
GuiControl, nmbr:Text, az, [%az%]
return

*~Numpad6::
a--
az++
GuiControl, nmbr:Text, a, %a%
GuiControl, nmbr:Text, az, [%az%]
return
;--------------------------------------------------------------------------------

;*~Numpad9::
d++
dc--
GuiControl, nmbr:Text, d, %d%
GuiControl, nmbr:Text, dc, [%dc%]
return

;*~Numpad6::
d--
dc++
GuiControl, nmbr:Text, d, %d%
GuiControl, nmbr:Text, dc, [%dc%]
return

;--------------------------------------------------------------------------------

;*~Numpad9::
s++
sx--
GuiControl, nmbr:Text, s, %s%
GuiControl, nmbr:Text, sx, [%sx%]
return

;*~Numpad6::
s--
sx++
GuiControl, nmbr:Text, s, %s%
GuiControl, nmbr:Text, sx, [%sx%]
return

;--------------------------------------------------------------------------------

;*~Numpad9::
d++
dc--
GuiControl, nmbr:Text, d, %d%
GuiControl, nmbr:Text, dc, [%dc%]
return

;*~Numpad6::
d--
dc++
GuiControl, nmbr:Text, d, %d%
GuiControl, nmbr:Text, dc, [%dc%]
return

;--------------------------------------------------------------------------------

*F11:: Suspend

*F4::
Suspend Off
Critical
Sleep 20
Reload
return

2

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

ioadh пишет:

AHK v.2

Но в вашем коде не используется синтаксис v2, это синтаксис v1.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

teadrinker Использую вторую версию AHK, и делаю опору именно на это, поэтому извините за такие ошибки чайника.

4

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Возможно, вы как-то используете вторую версию, но приведённый вами код не для неё, он для первой версии, поэтому добавить туда код для второй версии не получится.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: ioadh, 2023-06-13 20:03:30)

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Вы можете помочь с кодом допустим для первой версии AHK? Саму реализацию этих функций.

6

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Наверно мог бы, но мне не совсем понятна задача.

ioadh пишет:

добавить в свой код кнопку-переключатель между режимами a, s, d

Что вы имеете в виду под кнопкой, кнопку в GUI или клавишу на клавиатуре? Как именно она должна работать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: ioadh, 2023-06-13 20:16:13)

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Кнопка на клавиатуре, которая будет переключать значения, которые мне нужно изменить. Чтоб не использовать 7 кнопок на клавиатуре, хочу сделать механику, которая могла переключать режимы, экономив при этом 4 кнопки(очень много других биндов, которые нужно параллельно с этим использовать, не хватает кнопок на клавиатуре). Для этого и хочу уменьшить количество используемых кнопок конкретно для этой функции.

8

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Вот пример такого переключения:

mode := 1

^1:: mode := 1
^2:: mode := 2
^3:: mode := 3

#If mode = 1
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%

#If mode = 2
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%

#If mode = 3
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
#If

Гррячие клавиши Ctrl + 1, Ctrl + 2, Ctrl + 3 переключают режимы работы горячих клавиш NumPad6 и NumPad9. Вместо

MsgBox, Эта кнопка сейчас работает в режиме %mode%

пишите свой код для работы в этих режимах.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Хорошо, спасибо, попробую. А что по поводу автосохранения измененных значений после использования функции Reload? Возможно ли это?

10

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Можете записать переменную mode в ini-файл. Читайте про команды IniWrite и IniRead. Вместо

mode := 1

в начале тогда нужно будет прочитать значение из ini-файла.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Хорошо, спасибо. Ещё вопросик по теме смены значений режимами. Если этих значений больше чем 3 например, можно сделать так, чтобы они переключались биндом просто вверх/вниз, ну или просто в одну сторону по кругу?

12

Re: AHK: Кнопка-переключатель режимов и автоматическое сохранение

Примерно так, вместе с ini:

IniRead, mode, config.ini, settings, mode, 1
MsgBox, % mode
Return

^1::
   mode := [3, 1, 2][mod(++mode, 3) + 1]
   IniWrite, % mode, config.ini, settings, mode
   MsgBox, mode: %mode%
Return


#If mode = 1
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%

#If mode = 2
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%

#If mode = 3
NumPad6:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
NumPad9:: MsgBox, Эта кнопка сейчас работает в режиме %mode%
#If
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder