1 (изменено: mistert1993, 2021-04-17 14:35:20)

Тема: проверка состояния Capslock

Добрый день форумчане, я новичок в плане скриптинга а если точнее то только установил АХК предварительно посмотрев десятки роликов на ТыТрубе для ознакомления
вопрос вот в чем, пытаюсь сделать скрипт для облегченной работы в солиде, вроде как получилось.. но частично, а именно чего пытаюсь добиться:

При "зажатой" клавише Capslock должны выполняться команды по клавишам, а при отжатой работать как обычно, так же все это в определённой программе

вот код который у меня работает, но срабатывает либо везде либо не имеет значения зажат или нет в определённом окне:

GetKeyState("CapsLock", "T")
#lfwinActive ahk_exe SolidWorks2019.exe.
{
F1::
send, ^{a}
sleep, 500
send, ^{c}
return
F2::
send, ^{a}
sleep, 500
send, ^{v}
sleep, 500
send, {Enter}
return
F3::
send, ^{x}
return
F4::
send, ^{d}
return
F5::
send, ^{m}
}
#if

так-же, для понятия принципа работы пробовал написать скрипт на состояние клавиши Capslock с использованием тултип окна
к сожалению так и не получилось ничего путного

F1::
If GetKeyState ("Capslock", "T")
tooltip, Capslock is On
else
tooltip, Capslock is Off
return

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

2

Re: проверка состояния Capslock

Код оформляется тегом 'code'.
Проверка 'GetKeyState("CapsLock", "T")' должно проходить не один раз а постоянно.
Англ. названия и клавиши не нужно переводить.
Скрипт не может работать, если команды пишут криво, нужно так проверять:

GetKeyState("CapsLock", "T")
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: mistert1993, 2021-04-17 14:34:03)

Re: проверка состояния Capslock

__Михаил__ пишет:

Код оформляется тегом 'code'.
Проверка 'GetKeyState("CapsLock", "T")' должно проходить не один раз а постоянно.
Англ. названия и клавиши не нужно переводить.
Скрипт не может работать, если команды пишут криво, нужно так проверять:

GetKeyState("CapsLock", "T")

да, исправил но всеравно, статус не меняется, как было Off так и остается.
А что значит проходить постоянно? разве её заключение в {} не говорит о том, что данное выражение проверяется командой перед скобками?? не могли бы Вы исправить как нужно.

4

Re: проверка состояния Capslock

У меня всё верно определяет состояние:

F1::
If GetKeyState("Capslock", "T")
 Tooltip, Capslock is On
Else
 Tooltip, Capslock is Off
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: проверка состояния Capslock

В первой строке 'GetKeyState("CapsLock", "T")' получает статус кнопки и не использует эти данные вообще. Толку от этих скобок?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6

Re: проверка состояния Capslock

Вот готовый пример, думаю подстроить под свои окна будет не трудно:

#If Test("Notepad.exe")

F2::
ToolTip, Блокнот: %A_ThisHotkey%,0,0
Return

F3::
ToolTip, Блокнот: %A_ThisHotkey%,0,0
Return

#If

#If Test("Chrome.exe")

F2::
ToolTip, Chrome: %A_ThisHotkey%,0,0
Return

F3::
ToolTip, Chrome: %A_ThisHotkey%,0,0
Return

#If

Test(App) {
 WinGet, EXE, ProcessName, A
 If (EXE = App) & GetKeyState("CapsLock", "T")
  Return 1
}
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: проверка состояния Capslock

mistert1993, заголовок темы должен содержать префикс скриптового языка. Не следует цитировать предыдущее сообщение целиком. Если хотите обратиться к конкретному участнику, жмите "Вставить ник".