Тема: AHK: Запуск скрипта любой комбинацией
В общем, есть скрипт, который запускается кнопкой CTRL, но не это не всегда удобно. Хотелось бы добавить возможность запускать скрипт любой комбинацией с кнопкой CTRL
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В общем, есть скрипт, который запускается кнопкой CTRL, но не это не всегда удобно. Хотелось бы добавить возможность запускать скрипт любой комбинацией с кнопкой CTRL
Ya , ознакомьтесь с этой темой, отредактируйте заголовок.
Ya , ознакомьтесь с этой темой, отредактируйте заголовок.
Простите, забылся.
*RCtrl::
*LCtrl:: ToolTip ToolTip
Просите, я не совсем правильно выразился.
Конторол ставит/снимает скрипт с паузы. То есть, строка такая
Control::PauseКак ее отредактировать правильно, чтобы заработало?
Что заработало?
Нет. Паузу вообще игнорирует. Нужно чтобы скрипт, снимался и ставился на паузу любой комбинацией с кнопкой CTRL
*RCtrl::
*LCtrl:: Pause
Что значит:
любой комбинацией с кнопкой CTRL
любой комбинацией с кнопкой CTRLCtrl+любая кнопка
Любая кнопка+Ctrl
Удерживание Ctrl+любая кнопка
Удерживание любой кнопки+Ctrl
SetBatchLines -1
Hook := DllCall("SetWindowsHookEx" . (A_IsUnicode ? "W" : "A")
, Int, 13 ; WH_KEYBOARD_LL := 13
, Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
, Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
, UInt, 0, Ptr)
OnExit, Exit
Return
CtrlKEYDOWN:
ToolTip Ctrl && KEYDOWN
Return
LowLevelKeyboardProc(nCode, wParam, lParam) {
Static KEYDOWN, Ctrl
SaveFormat := A_FormatInteger
SetFormat, IntegerFast, H
VkCode := NumGet(lParam+0, 0, "UInt")
IF (wParam = 0x100 || wParam = 0x104) ; WM_KEYDOWN := 0x100, WM_SYSKEYDOWN := 0x104
{
IF (VkCode = 0xA2 || VkCode = 0xA3)
Ctrl := 1
Else
KEYDOWN := 1
}
Else IF (wParam = 0x101 || wParam = 0x105) ; WM_KEYUP := 0x101, WM_SYSKEYUP := 0x105
{
IF (VkCode = 0xA2 || VkCode = 0xA3)
Ctrl := 0
Else
KEYDOWN := 0
}
IF (Ctrl && KEYDOWN)
SetTimer CtrlKEYDOWN, -10
SetFormat, IntegerFast, %SaveFormat%
Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)
}
Exit:
DllCall("UnhookWindowsHookEx", Ptr, Hook)
ExitApp
Повторное действие только после отпускания Ctrl:
SetBatchLines -1
Hook := DllCall("SetWindowsHookEx" . (A_IsUnicode ? "W" : "A")
, Int, 13 ; WH_KEYBOARD_LL := 13
, Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
, Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
, UInt, 0, Ptr)
OnExit, Exit
Return
CtrlKEYDOWN:
ToolTip Ctrl && KEYDOWN
Return
LowLevelKeyboardProc(nCode, wParam, lParam) {
Static KEYDOWN, Ctrl, CtrlUP
SaveFormat := A_FormatInteger
SetFormat, IntegerFast, H
VkCode := NumGet(lParam+0, 0, "UInt")
IF (wParam = 0x100 || wParam = 0x104) ; WM_KEYDOWN := 0x100, WM_SYSKEYDOWN := 0x104
{
IF (VkCode = 0xA2 || VkCode = 0xA3)
Ctrl := 1
Else
KEYDOWN := 1
}
Else IF (wParam = 0x101 || wParam = 0x105) ; WM_KEYUP := 0x101, WM_SYSKEYUP := 0x105
{
IF (VkCode = 0xA2 || VkCode = 0xA3)
Ctrl := CtrlUP := 0
Else
KEYDOWN := 0
}
IF (Ctrl && KEYDOWN && !CtrlUP)
{
CtrlUP := 1
SetTimer CtrlKEYDOWN, -10
}
SetFormat, IntegerFast, %SaveFormat%
Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)
}
Exit:
DllCall("UnhookWindowsHookEx", Ptr, Hook)
ExitApp
А вот чтобы снимать так с Pause, код надо запускать отдельным скриптом.
Спасибо. Сейчас буду пробывать.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться