Что нового

Автоматически запускается функция хотя не должна

Ufo

Новичок
Сообщения
12
Репутация
0
Вот этот код:
Код:
For $i = 1 To 5
	HotKeySet ($i, _rns($i))
Next
		
Func _rns($mn) 
	MsgBox (64, "Selection done", "№" &$mn& " was selected")
EndFunc

Смысл чтоб создать хоткеи и ждать. А он их запускает по порядку. Не пойму где ошибка.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Ufo [?]
Не пойму где ошибка
Ошибка в нежелании прочитать справку по функции HotKeySet().
Код:
For $i = 1 To 5
	HotKeySet($i, '_rns')
Next
HotKeySet('{Esc}', '_Exit')
While 1
	Sleep(20)
WEnd

Func _rns()
	MsgBox(64, "Selection done", "№" & @HotKeyPressed & " was selected")
EndFunc   ;==>_rns

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
U

Ufo

Новичок
Сообщения
12
Репутация
0
Почему не работает такая же конструкция через HotKey.au3 & _HotKeyAssign ? Хотелось бы сбрасывать потом эти хоткеи.

Тыкнулся пальцем в небо пяток раз - попал:
Код:
#include <HotKey.au3>

For $i = 1 To 5
	_HotKeyAssign ("0x3"&$i, '_rns', $HK_FLAG_EXTENDEDCALL)
Next
HotKeySet('{Esc}', '_Exit')
While 1
    Sleep(20)
WEnd

Func _rns($ikey)
    MsgBox(64, "Selection done", "№" & $iKey & " was selected")
EndFunc

Func _Exit()
    Exit
EndFunc
:smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Ufo [?]
Хотелось бы сбрасывать потом эти хоткеи.
Код:
For $i = 1 To 5
	HotKeySet($i, '_rns')
Next
HotKeySet('{Esc}', '_Exit')
While 1
	Sleep(20)
WEnd

Func _rns()
	If MsgBox(36, 'Test', 'Была нажата горячая клавиша "' & @HotKeyPressed & '"' & @LF & _
			'Удалить горячую клавишу "' & @HotKeyPressed & '"?') = 6 Then
		HotKeySet(@HotKeyPressed)
	EndIf
EndFunc   ;==>_rns

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Верх