Что нового

Не переключается переменная

Snezhkin

Новичок
Сообщения
1
Репутация
0
Код:
Global $Var1 = 0
HotKeySet("{NUMPAD0}","switcher")
Func switcher()
   If $Var1 == 0 Then
	  $Var1 = 1
   Else
	  $Var1 = 0
	  EndIf
EndFunc

While(True)
   Sleep(10)
   If $Var1 == 1 Then
	  Send("{NUMPAD9}")
	  EndIf
WEnd


Начать хочу с того, что у меня зад сгорел несколько раз, в моих безуспешных попытках найти ксор. (аналог булевого переключателя meow = !meow; из cpp), и я решил делать на условиях. Знаете, что забавно? Оно включается, но не выключается. То-есть одна и та же операция по какой-то причине не работает. И тут я почти сгорел второй раз, но решил всё же обратиться к вам - может вы знаете что тут не так

пардоньте, переключается. Только вот с задержкой какой-то неадекватной - где 0.7 секунды. Не знаете, с чем может быть связано?

И всё-таки ничего не понятно, оно то нажимается, то не нажимается, то нажимается с огромной задержкой. Жуть какая-то.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Работает нормально, без задержек, но если "Numpud9" нужно нажать один раз ,а не колбасить постоянно каждые 10мс , то установите переменную "var1" в "0" в бесконечном цикле при условии , когда она равна "1" вот так:
Код:
Global $Var1 = 0
HotKeySet("{NUMPAD0}", "switcher")
Func switcher()
	If $Var1 == 0 Then
		$Var1 = 1
	Else
		$Var1 = 0
	EndIf
EndFunc   ;==>switcher

While (True)
	Sleep(10)
	If $Var1 == 1 Then
		$Var1 = 0
		Send("{NUMPAD9}")
	EndIf
WEnd
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Snezhkin [?]
Код:
Global $Var1 = False
HotKeySet("{NUMPAD0}", "switcher")
Func switcher()
    $Var1 = Not $Var1
	MsgBox(0, 'Сообщение', $Var1)
EndFunc   ;==>switcher

While 1
    Sleep(10) ; 100 раз в секунду
    ; If $Var1 Then
		; $Var1 = Not $Var1
		; MsgBox(0, 'Сообщение', $Var1)
	; EndIf
WEnd


кстати с цифрами лучше так
Код:
If $Var1 Then
	$Var1 = 0
Else
	$Var1 = 1
EndIf

== это переводит числа в текст и сравнивает тексты, что лишне.
 
Верх