1 (изменено: skeleton, 2015-06-22 10:04:01)

Тема: AHK: Переключение между блоками кода внутри скрипта

Есть код

#If B1
 Блок кода 1
#If
F11:: B1 := !B1

#If B2
 Блок кода 2
#If
F12:: B2 := !B2

При старте скрипта оба блока не активны, нажав клавишу Ф я активирую нужный, чтобы переключиться на другой приходится сначала нажать Ф активного блока - затем нужного.

Как сделать так чтобы если активно Ф11 - то если я нажму Ф12 - Ф11 деативируется а Ф12 активируется и наоборот...
Жму Ф12 - Ф11 деактивируется, Ф12 активируется. Чтобы не жать две кнопки.

#If B1
 Блок кода 1
#If
F11:: 
B1 := 1
B2 := 0

#If B2
 Блок кода 2
#If
F12:: 
B2 := 1
B1 := 0

не работает

2

Re: AHK: Переключение между блоками кода внутри скрипта

Не знаю, с двумя кнопками все работает.

B1:=1
#If B1
F1:: MsgBox Блок кода 1
#If
F11:: B1:=1, B2:=0

#If B2
F1:: MsgBox Блок кода 2
#If
F12:: B2:=1, B1:=0

Может, все-таки проще использовать одну клавишу? (F12)

B1:=1
#If B1
F1:: MsgBox Блок кода 1
#If

#If !B1
F1:: MsgBox Блок кода 2
#If
F12:: B1:=!B1

3 (изменено: skeleton, 2015-06-22 13:59:51)

Re: AHK: Переключение между блоками кода внутри скрипта

Хмм... а это мысль!

Но тут уже активен блок после запуска скрипта, а мне нужно когда скрипт запущен первый раз что бы я сам выбрал какой блок запустить первым.

4 (изменено: Irbis, 2015-06-22 14:57:28)

Re: AHK: Переключение между блоками кода внутри скрипта

#If B1=0
F1:: MsgBox Блок кода 1
#If

#If B1=1
F1:: MsgBox Блок кода 2
#If
F12:: B1:=!B1

5 (изменено: Alectric, 2015-06-23 08:02:56)

Re: AHK: Переключение между блоками кода внутри скрипта

skeleton пишет:
#If B1
 Блок кода 1
#If
F11:: 
B1 := 1
B2 := 0

#If B2
 Блок кода 2
#If
F12:: 
B2 := 1
B1 := 0

не работает

loop
{
  if B1
  {
    ; блок 1
    tooltip,Блок 1
  }
  else if B2
  {
    ; блок 2
    tooltip,Второй блок.
  }
  else
  {
    ; блоки отключены
    sleep,100
  }
}

F11::
B1 := 1
B2 := 0
return    ; не забывай ставить return в конце хоткеев

F12::
B1 := 0
B2 := 1
return 

F10::
B1 := 0
B2 := 0
return 
Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

6

Re: AHK: Переключение между блоками кода внутри скрипта

В случае с однострочным хоткеем Return не нужен.

F11:: B1:=1, B2:=0

И задействовать 3 клавиши, где можно обойтись одной - все-таки перебор.