1 (изменено: Lyosha12, 2012-12-25 17:31:35)

Тема: AHK: Как сделать горячую кнопку перезагрузки скрипта?

У меня есть скрипт для теста новичков, нужна горячая кнопка для перезагрузки.
Пробовал


8::Return,
8::Reset

Что ещё можете подсказать, что бы или вернуть в начало скрипт, или перезагрузить его?

2

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Что ещё можете подсказать

Сначала правильно оформить заголовок темы.

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

3

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

serzh82saratov пишет:

Что ещё можете подсказать

Сначала правильно оформить заголовок темы.

Оформил как бы...

4 (изменено: serzh82saratov, 2012-12-25 17:38:55)

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

вернуть в начало скрипт

Поместить первой строкой метку

начало:

и

8::
Goto, начало

перезагрузить его

8::Reload

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

5 (изменено: Lyosha12, 2012-12-25 17:42:27)

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Не катит так, нужна ещё одна тогда. Можно совместить как-то без дополнительной клавиши?
http://s1.hostingkartinok.com/uploads/images/2012/12/d4f86d5746d5a660d40328a87888e659.png

6

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Что с чем совместить то?

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

7

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Кнопку

8::Goto, начало

и

8::Reload

Нужно подключать вторую кнопку, что бы ошибки не было. А это дополнительное место на клаве, которого и так мало

8

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Или можно и на мышку назначить? У мышки 5 кнопок, ЛКМ, ПКМ, колёсико, и 2 кнопки для перехода между страничками в браузере\папке, с боку. Можно на них назначить? И какой для них код?

9 (изменено: creature.ws, 2012-12-25 17:52:06)

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Lyosha12, Документация
serzh82saratov, чем обосновано использование кириллицы в именах меток и переменных?

10

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

creature.ws

чем обосновано использование кириллицы в именах меток и переменных?

Хм... А почему-бы нет? Русиш то, родной язык.

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

11

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Представьте, что читаете код китайца, где метки и переменные на китайском.

12

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Спасибо, использую

8::Reload

. Вы дали два варианта, но не сказали это

13

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Понадобилось перезагрузить скрипт (не reload) с помощью той же горячей клавиши, которой его и запускаем.
Пока допер до этого:
Может есть более правильные (надежные) варианты?

1::
n++
SetTimer, Loop, -1
return

Loop:
nPrev := n
While (nPrev = n)
   ToolTip % A_Index
return

14

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Нашел такой скрипт:

OnMessage(0x404, "AHK_NOTIFYICON")
AHK_NOTIFYICON(wParam, lParam)
{
    if (lParam = 0x202) ; WM_LBUTTONUP
    {
        Suspend
        return 1
    }
    else if (lParam = 0x205) ; WM_RBUTTONUP
    {
        Reload
        Sleep 1000
        return 1 ; In case of load failure.
    }
    else if (lParam = 0x208) ; WM_MBUTTONUP
    {
        Menu, Tray, Show
        return 1
    }
}

Замораживает скрипт левой клавишей мыши по значку в трее, перезагружает правой, вызывает меню средней.
Как правильно перенести функции Suspend и Reload на горячие клавиши? А именно хотелось бы, чтобы при нажатии на клавишу end скрипт сохранялся, если в текущий момент он открыт в notepad++, а также перезапускался, если он запущен. Если не открыт в редакторе, то просто перезагружался. А при нажатии на клавишу Pause действие скрипта приостанавливалось. Было бы круто, если эти команды срабатывали на все запущенные скрипты AHK.
Пробовал самостоятельно переделать, но увы, работает через раз.

15

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Если по нажатию End должно что-то происходить, значит скрипт уже запущен. Зачем это дополнительно проверять?

16

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

ypppu, не понял Вашего вопроса. Примитивным методом набрал такой скрипт, который, по моему предположению, должен делать именно то, что нужно:

end::
ifwinactive, ahk_exe notepad++.exe
    {
        send, ^{vk53}
    }
reload
sleep 1000
return

Кажется, что срабатывает не всегда. Но на большее я не способен. И даже при копировании этих строк в каждый из запущенных скриптов, перезагрузка срабатывает только на один из них.

17

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

хотелось бы, чтобы при нажатии на клавишу end скрипт  . . .  перезапускался, если он запущен

Не понятно, кто будет отслеживать нажатие клавиши End, если скрипт не запущен? Человек?

18

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

ypppu, т.е. для этого должен быть отдельный файл, куда и стоит поместить этот код? Так понимаю, в нем еще должны быть перечислены все работающие скрипты? Или же как-то указано, что-бы были задействованы все открытые скрипты.

19

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Например вписать в каждый скрипт:

~end::
ifwinactive, *%A_ScriptFullPath% - Notepad++ [Administrator]
   send, ^{vk53}
reload

20 (изменено: stealzy, 2015-09-05 19:56:35)

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Раз уж речь про Notepad++, то в нем есть меню запуск, где повесить запуск на клавишу.
Чтобы перед запуском сохранить, или еще что, лучше использовать плагин NppExec,
у меня по хоткею он запускается так:

npp_save
"C:\Program Files\AutoHotkey\autohotkey.exe" "$(FULL_CURRENT_PATH)"  "$(CURRENT_DIRECTORY)"  "$(NAME_PART)"

Чтобы работающий скрипт завершался при запуске новой копии используйте #SingleInstance Force.

becauseim
В приведенном вами коде перезагружатся будет только последний запущенный скрипт - потому что только он получит ваше нажатие, дальше оно не пойдет, потому что вы не использовали префикс ~.
----------------
Offtop: Разумеется в NP++ запуск нужно настроить, "из коробки" он запускать ничего не будет.

21

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

stealzy пишет:

есть меню запуск

Попробовал запустить по F5 и Alt+F5, не выходит. Как использовать приведенный Вами код, к сожалению, не понял. Скопировал код в каждый из рабочих файлов, которым поделился Malcev, работает. Конечно, в идеале было бы иметь возможность одним скриптом перезагружать все остальные, но я не так часто тестирую новые, поэтому, не критично.

22

Re: AHK: Как сделать горячую кнопку перезагрузки скрипта?

Не совсем понял 14 пост, но может как то так:


DetectHiddenWindows, On

  ; Reload=65303, Suspend=65305, Pause=65306, Exit=65307

#If WinActive("ahk_class Notepad++")

End::
    Send ^{vk53}    ;  "S"
    Sleep 50
    WinGetTitle, Title, A
    RegExMatch(Title, "\**(.*) - Notepad\+\+.*", Path) 
    WinGet, Ids, List, ahk_class AutoHotkey
    Loop % Ids
        If InStr(GetCommandLineProc(Ids%A_Index%), """" Path1 """")
            PostMessage, 0x111, 65303,,, % "ahk_id" Ids%A_Index%  
        Return
#If

GetCommandLineProc(hwnd)  {
    WinGet, pid, PID, ahk_id %hwnd%
    ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process WHERE ProcessId = " pid)._NewEnum.next(X)
    Return Trim(X.CommandLine)
}

^End::  ; Перезагрузка всех скриптов, в том числе компилированных, кроме этого скрипта
    WinGet, Ids, List, ahk_class AutoHotkey
    Loop % Ids
        If    (Ids%A_Index% != A_ScriptHWND)
            PostMessage, 0x111, 65303,,, % "ahk_id" Ids%A_Index%  
        Return
        
Pause::  ; Пауза всех скриптов, в том числе компилированных
    WinGet, Ids, List, ahk_class AutoHotkey
    Loop % Ids 
        PostMessage, 0x111, 65306,,, % "ahk_id" Ids%A_Index%
Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui