1 (изменено: antosha, 2014-01-20 14:00:42)

Тема: AHK: HotKey

Приветствую всех. Начал изучать ahk и решил пока писать мини-скрипты для моего обучения. Наткнулся на такую проблему. Я ставлю нужную мне комбинацию и скрипт работает, но когда я меняю эту клавишу, то предыдущая клавиша не отключается, то есть теперь у меня работают 2 комбинации. В чем проблема?

Gui, Add, Hotkey, vMyHotkey,
Gui, add, edit, vEdit,
Gui, add, button, gsave, save
Gui, show
return

Save:
Gui, submit, nohide
Hotkey, %MyHotKey% , play, pn
return
play:
msgbox %Edit%

2

Re: AHK: HotKey

Назначьте предыдущей комбинации метку с командой Return.

3

Re: AHK: HotKey

Я не понял как ее назначить.

4

Re: AHK: HotKey

Так же, как новой назначаете. Хотя ведь у команды Hotkey есть ещё опция Off, которой можно отключать.

5 (изменено: Irbis, 2014-01-20 17:31:15)

Re: AHK: HotKey

YMP пишет:

Назначьте предыдущей комбинации метку с командой Return.

А потом второму хоткею тоже Return, затем третьему и т.д.?

Gui, Add, Hotkey, vMyHotkey,
Gui, add, edit, vEdit,
Gui, add, button, gsave, save
Gui, show
return

Save:
if MyHotKey
   Hotkey, %MyHotKey%, Off
Gui, submit, nohide
Hotkey, %MyHotKey% , play
Hotkey, %MyHotKey%, On
return
play:
msgbox %Edit%

antosha, если копируешь примеры из справки, или из другого источника, изучи какие параметры и за что отвечают.
Что в твоем примере делает последний параметр?

Hotkey, %MyHotKey% , play, pn

Upd: YMP сам себя уже поправил.

6 (изменено: serzh82saratov, 2014-01-20 18:05:12)

Re: AHK: HotKey

Пару поправок, если позволите.

Думаю что лишняя строка:


Hotkey, %MyHotKey%, On

---

if MyHotKey

Если хоткеем будет клавиша "0", то она не отключится.

Хотя можно и совсем упразднить:



Save: 
    Hotkey, %MyHotKey%, Off, UseErrorLevel
    GuiControlGet, MyHotKey 
    Hotkey, %MyHotKey%, play, On
    return

---
Ну и для ТС:

play:
msgbox %Edit%

тут надо

GuiControlGet, Edit

можно нажать save потом ввести новый текст, но в msgbox его уже не будет при нажатии хоткея.
---


Gui, Add, Hotkey, vMyHotkey 
Gui, add, edit, vEdit 
Gui, add, button, gsave, save
Gui, show
return

Save:
    if MyHotKey !=
        Hotkey, %MyHotKey%, Off
    GuiControlGet, MyHotKey 
    Hotkey, %MyHotKey%, play, On
    return

play:
    GuiControlGet, Edit
    msgbox %Edit%
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: HotKey

Всем спасибо. Но вот возникла еще одна проблема, час с нею мучился, ничего не придумал. Если не указать горячую клавишу и нажать "Save", то будет ошибка. Как ее можно исправить?

8

Re: AHK: HotKey

А все, кажется разобрался.

9

Re: AHK: HotKey

Возникла новая проблема. Некорректно работает скрипт, если есть 2 горячих клавиши. Если настроить вторую горячую клавишу, не настраивая первую, то скрипт работать не будет. Но если настроить 2 горячие клавиши, то скрипт заработает. Вот код:

Gui, Add, Hotkey, vMyHotkey 
Gui, add, edit, vEdit 
Gui, Add, Hotkey, vMy
Gui, add, edit, vEd
Gui, add, button, gsave, save
Gui, show
return

Save:
    if MyHotKey !=
        Hotkey, %MyHotKey%, Off
    GuiControlGet, MyHotKey
    if MyHotKey =
        return
    Hotkey, %MyHotKey%, play, On
    
    if My !=
        Hotkey, %My%, Off
    GuiControlGet, My
    if My =
        return
    Hotkey, %My%, plays, On
    return

play:
    GuiControlGet, Edit
    msgbox %Edit%
    return
Plays:
    GuiControlGet, Ed
    msgbox, %Ed%
return

10

Re: AHK: HotKey


Gui, Add, Hotkey, vMyHotkey 
Gui, add, edit, vEdit 
Gui, Add, Hotkey, vMy
Gui, add, edit, vEd
Gui, add, button, gsave, save
Gui, show
return

Save: 
    Hotkey, %MyHotKey%, Off, UseErrorLevel
    Hotkey, %My%, Off, UseErrorLevel
    Gui, submit, nohide
    Hotkey, %MyHotKey%, play, On, UseErrorLevel
    Hotkey, %My%, plays, On, UseErrorLevel
    return

play:
    GuiControlGet, Edit
    msgbox %Edit%
    return
Plays:
    GuiControlGet, Ed
    msgbox, %Ed%
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui