1

Тема: AHK: Блокировка повторного использования кнопки в Gui, Add, Hotkey.

Нужна функция для блокировки повторного ввода уже существующей кнопки в Gui, Add, Hotkey.

Для примера:
Gui, Add, Hotkey, x14 y10 w90 h20,
Gui, Add, Text, x114 y10 w430 h20, - Кнопка 1.
Gui, Add, Hotkey, x14 y30 w90 h20,
Gui, Add, Text, x114 y30 w430 h20, - Кнопка 2.
Gui, Show
return

Если уже введена кнопка 1, для примера: Alt+1, тогда кнопка 2 уже не сможет иметь такое же значение и соответвенно в трее будет высвечено сообщение "Данное сочитание клавиш уже занято.".

2 (изменено: alekksss, 2017-10-24 22:10:36)

Re: AHK: Блокировка повторного использования кнопки в Gui, Add, Hotkey.

Для оформления кода используйте тег code.

KeyList := object()
Gui, Add, Hotkey, x14 y10 w90 h20,
Gui, Add, Text, x114 y10 w430 h20 ggetKey vkey1, 
Gui, Add, Hotkey, x14 y30 w90 h20,
Gui, Add, Text, x114 y30 w430 h20 ggetKey vkey2,
Gui, Show
return
getKey:
GuiControlGet, getUseKey, , %A_GuiControl%
if(KeyList.HasKey("HK:" getUseKey))
	GuiControl, , %A_GuiControl%, 
KeyList["HK:" getUseKey] := 1
return

Примерно так.
Поясню. При выборе кнопки будет вызываться лейбл getKey. В нём будет проверяться сущетсвование уже такого хоткея. Если есть - изменяем сам ГУИ Хоткей на пустое значение.Проверка не идельна, нет очистки не актуальных клавиш из KeyList. Сами додумайте.