1 (изменено: ypppu, 2017-07-08 10:30:14)

Тема: AHK: Назначение ГК в зависимости от условия

Всем привет!
Задача скрипта состоит в том, что при активном чекбосе "One" должен выполняться определенный макрос, но он в данном случае выполняется вне зависимости от чекбокса.
Мой вариант(не работает):

#SingleInstance, force

;Gui
;=============================================================

Gui, Color, Gray
Gui, -SysMenu
Gui, +AlwaysOnTop
Gui, Font, norm s12
Gui, Add, Text, x10 y10, text
Gui, Add, CheckBox, x10 y35 vCheck1 gOne, One
Gui, Show, w300 h500 x1610 y430, v1.0
Gui, Add, Button, x40 y450 w120 h30 gStart_Button, START\STOP
Gui, Add, Button, x170 y450 w120 h30 gClose_Button, CLOSE
return
GuiClose:
ExitApp
return
sc147::
Gui, Restore
return
sc14F::
Gui, Hide
return
;=============================================================
;Buttons======================================================


Close_Button:
ExitApp
return


Start_Button:
return

One:
	Gui,Submit, NoHide
	if(Check1 == 1) 
	{
	SC12:: ; 
	Send, {SC3E}
	Send, {SC3}
	Send, {SC11}
	Send, {SC4}
	Send, {SC11}
	Send, {SC5}
	Send, {SC11}
	Send, {SC6}
	Send, {SC11}
	Send, {SC2}
	Sleep, 1400
	Send, {Space}
	Send, {Click}

	} 
	else if(Check1 == 0)
	return

Что может быть не так?

2 (изменено: virus4eg1993, 2017-07-07 23:11:05)

Re: AHK: Назначение ГК в зависимости от условия

stealzy прошу прощения, исправил, согласно правилам

3 (изменено: stealzy, 2017-07-08 00:04:13)

Re: AHK: Назначение ГК в зависимости от условия

Клавиша::Команды — это безусловное выражение, считайте что оно выполняется сразу при старте раньше всех команд. Нет смысла засовывать его в блоки кода if/else (но можно использовать #If).
Для условного назначения ГК используют Hotkey:

#SingleInstance force
Gui Color, Gray
Gui -SysMenu +AlwaysOnTop
Gui Font, norm s12
Gui Add, Text, x10 y10, text
Gui Add, CheckBox, x10 y35 vCheck1 gOne, One
Gui Show, w300 h500 x1610 y430, v1.0
Gui Add, Button, x40 y450 w120 h30 gStart_Button, START\STOP
Gui Add, Button, x170 y450 w120 h30 gClose_Button, CLOSE
return

sc147::Gui Restore
sc14F::Gui Hide

GuiClose:
Close_Button:
ExitApp

Start_Button:
return

One:
	Gui Submit, NoHide
	if Check1
		Hotkey SC12, MySendCombination, On
	Else
		Hotkey SC12, MySendCombination, Off
Return

MySendCombination:
	Send {SC3E}{SC3}{SC11}{SC4}{SC11}{SC5}{SC11}{SC6}{SC11}{SC2}
	Sleep 1400
	Send {Space}{Click}
Return

Вариант с #If:

#SingleInstance force
Gui Color, Gray
Gui -SysMenu +AlwaysOnTop
Gui Font, norm s12
Gui Add, Text, x10 y10, text
Gui Add, CheckBox, x10 y35 vCheck1 gOne, One
Gui Show, w300 h500 x1610 y430, v1.0
Gui Add, Button, x40 y450 w120 h30 gStart_Button, START\STOP
Gui Add, Button, x170 y450 w120 h30 gClose_Button, CLOSE
return

sc147::Gui Restore
sc14F::Gui Hide

GuiClose:
Close_Button:
ExitApp

Start_Button:
return

One:
	Gui Submit, NoHide
Return

#If Check1
SC12::
	Send {SC3E}{SC3}{SC11}{SC4}{SC11}{SC5}{SC11}{SC6}{SC11}{SC2}
	Sleep 1400
	Send {Space}{Click}
Return
#If

P.S.
Название "не работает макрос внутри скрипта" смысла практически не несет. Тут скорее назначение ГК в зависимости от условия.