Тема: AHK: Fn
На ноутбуках есть кнопка Fn
Можно ли с помощью скрипта запустить, какую нибудь горячую клавишу с использованием этой кнопки Fn?
Например: Fn + F12
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → AutoHotkey → AHK: Fn
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
На ноутбуках есть кнопка Fn
Можно ли с помощью скрипта запустить, какую нибудь горячую клавишу с использованием этой кнопки Fn?
Например: Fn + F12
Запустите следующий код и нажмите PrintScreen. Отобразится история нажатых клавиш. Если при нажатии клавиши Fn появляется новая строка, значит её можно использовать.
#NoEnv
Process Priority,,High
SetBatchLines -1
#InstallKeybdHook
SetKeyDelay 0,0
#KeyHistory 25
Width = 400
Height = 550
TopCut = 280
PrintScreen::
shown := !shown
If (!shown) {
SetTimer RThistory, OFF
WinHide ahk_id %KHID%
Return
}
KeyHistory
WinGet KHID, ID, %A_ScriptFullPath% - AutoHotkey v
WinSet AlwaysOnTop, ON, ahk_id %KHID%
WinSet ExStyle,-0x80, ahk_id %KHID% ; removes window from the alt-tab list
WinSet Region,% "W" Width " H" Height " 4-" TopCut, ahk_id %KHID%
WinMove ahk_id %KHID%,,% A_ScreenWidth-Width, -TopCut
SetTimer RThistory, 500
Return
RThistory:
WinGet ID, ID, A
ControlSend,,{F5}, ahk_id %KHID%
WinActivate ahk_id %ID%
Return
Потыкал кнопку Fn несколько раз, результаты на картинке.
Как же мне это применить, например для Fn+F12?
Такие варианты не работают:
Send, FF{F12}
Send, 178{F12}
Send, {FF}{F12}
Send, {178}{F12}
Работают, отправляется и FF и 178 и F12.
а у меня почему не работают
Send, {vkFF}{F12}
или
Send, {sc178}{F12}
а у меня почему не работают
Вася Пупкин, предложения у нас начинаются с большой буквы и заканчиваются точкой, не надо забывать об этом.
предложения у нас начинаются с большой буквы и заканчиваются точкой, не надо забывать об этом.
ОК.
Send, {vkFF}{F12}
Send, {sc178}{F12}
Эти два варианта тоже почемуто не работают.
Замечательно работают.
Может вы какой-то иной смысл в «не работают» вкладываете?
В первом сообщении Вася Пупкин спрашивал про Fn + F12 (то есть одновременно).
Такой скрипт посылает нажатия клавиш последовательно:
Send, {vkFF}{F12}
Send, {sc178}{F12}
Поэтому предлагаю попробовать так:
Send, {vkFF down}{F12}{vkFF up}
Send, {sc178 down}{F12}{sc178 up}
Send, {vkFF down}{F12}{vkFF up}
Send, {sc178 down}{F12}{sc178 up}
Это хозяйство тоже не работает
Может вы какой-то иной смысл в «не работают» вкладываете?
Незнай какой я смысл вкладываю,
но када я ручками на кнопки жму: Fn + F12
У меня в плеере следующий трек включается.
А с помощью скрипта, почемуто, на следующий трек не как не хочет переключаться.
P.s. Альтернативные способы (в обход Fn) запустить следующий трек в плеере не предлагать.
Я этот случай привёл в качестве примера.
P.s.2. Пытался определить код клавиши через AutoScriptWriter.exe
Он выдаёт, что Fn это:
Send, 255
Пробовал различные комбинации с 255, то же не помогает.
Предложение - замените переключение следующего трека на простое выскакивание окна
"MsgBox, СКРИПТРАБОТАЕТ ;
так точно будет видно, что проблема не в команде смены трека, а то - "много переменных"
Это не возможно.
Я пробовал поменять горячие клавиши с Fn. У меня не получились.
Это сочетание вшито, как то в дрова ноутбука, которые изменить, сложно/невозможно.
У меня ноутбучная клавиатура у компа, и мои скрипты не реагируют на нажатие Fn. По крайней мере в Key history and script info ни чего не пишется.
PS. а попробуйте
{Media_Next} 2000/XP/Vista+: Select next track in media player
{Media_Prev} 2000/XP/Vista+: Select previous track in media player
{Media_Stop} 2000/XP/Vista+: Stop media player
{Media_Play_Pause}
Пытался определить код клавиши через AutoScriptWriter.exe
Он выдаёт, что Fn это:
Send, 255
Пробовал различные комбинации с 255, то же не помогает.
255 это значение в десятичной системе счисления, в шестнадцатеричной системе это FF, можно попробовать так ещё:
Send, {vkFFsc178 Down}{F12}{vkFFsc178 Up}
Send, {vkFFsc178 Down}{F12}{vkFFsc178 Up}
Это не работает
{Media_Next} 2000/XP/Vista+: Select next track in media player
{Media_Prev} 2000/XP/Vista+: Select previous track in media player
{Media_Stop} 2000/XP/Vista+: Stop media player
{Media_Play_Pause}
И как мне это применить.
{Media_Next} 2000/XP/Vista+: run mspaint.exe
Типа в место следующего трека можно сделать запуск пейнта так?
Это не работает.
~sc178::
Send, {F12}
KeyWait, sc178
Return
И как мне это применить.
Как я понял из "но када я ручками на кнопки жму: Fn + F12 У меня в плеере следующий трек включается" в вашей клавиатуре на комбинации Fn + F12 прошита команда - Media_Next.
Если вам нужен мспаинт, то :
Media_Next::run mspaint.exe
вроде так.
Почитайте раздел хелпа Автохоткея "List of Keys, Mouse Buttons, and Joystick Controls", подраздел "Special Keys". Может тамшние примеры вам чем то помогут.
PS. Перечитал ваши посты. Не совсем понял вашу задачу: вам, в качестве примера, надо переключить следующий трек в плеере любой другой комбинацией клавиш, или присвоить хоткею Fn+F12 другое действие? Если второе, то, имхо, приведенный мною пример выше должен помочь. Если первое, то
кодхоткея:: Send, {Media_Next}
~sc178:: Send, {F12} KeyWait, sc178 Return
Ошибка:
---------------------------
5443.ahk
---------------------------
Error: Invalid key or button name
Specifically: sc178
Line#
001: Return
002: Send,{F12}
---> 003: KeyWait,sc178
The program will exit.
---------------------------
ОК
---------------------------
Media_Next::run mspaint.exe
Пейнт не запускается
send !{F12}:: Send, {Media_Next}
не чего не происходит
Почитайте раздел хелпа Автохоткея "List of Keys, Mouse Buttons, and Joystick Controls", подраздел "Special Keys". Может тамшние примеры вам чем то помогут.
Хорошо, почитаю
MsgBox, % GetKeyName("sc178")
1. Спасибо Grey
Есть успешный скрипт:
~sc178::
Send, {F12}
MsgBox, % GetKeyName("sc178")
Return
Результаты работы скрипта:
Нажимаю Fn ->
Выполняются следующие функции:
Send, {F12}
MsgBox, % GetKeyName("sc178")
Это здорово!
Но как только начинаю услажнять скрипт, он сразу перестаёт работать.
Например, в место:
~sc178::
ввожу ->
~^sc178::
То есть не Fn, а Control + Fn
Результат: скрипт не работает.
2. А вообщето мне надо скрипт, с действием наооборот.
Не по нажатию ручками горячей клавиши с Fn, запустить обычную горячую клавишу (например F12),
а нооборот запустить ручками обычную горячую клавишу (например F12), и что бы скрипт выполнил горячую клавишу с Fn.
Примерная моя идея скрипта (скрипт не работает):
~F12::
Send, {sc178}{F12}
MsgBox, % GetKeyName("sc178")
Return
Скрипт не работает, но должен по нажатию ручками F12,
выполнить функцию (горячую клавишу Fn+F12)
Хотя этот скрипт вот эту штуку на экран выводит:
MsgBox, % GetKeyName("sc178")
3. Изначально (Пост 1), я просил что бы скрипт не висел в трее и ожидал какого либо нажатия, а просто: открылся, выполнил горячую клавишу с Fn, и закрылся.
Примерная идея скрипта (скрипт не работает):
Send, {sc178}{F12}
Скрипт должен выполнить Fn+F12,
но почемуто не выполняет.
Последний свой код выложил не для того, чтобы его ты добавил в скипт выложеный ранее, а для того, чтобы ты мог проверить, отображается ли название в окне (MsgBox) этой функциональной клавиши (Fn) по клавиатурному коду (sc). Если, что-то у тебя всё же отображается, пиши, что именно. Какой плэер используешь?
~sc178::
Send, {F12}
MsgBox, % GetKeyName("sc178")
Return
Этот скрипт, по нажатию Fn выводит:
Плеер:
The KMPlayer 3.0.0.1440 Final.exe
vk78::PostMessage, 0x111, 0x9c6c,,, ahk_class Winamp v1.x ; prev (f9)
vk79::PostMessage, 0x111, 0x9c6e,,, ahk_class Winamp v1.x ; play/pause (f10)
vk7A::PostMessage, 0x111, 0x9c6f,,, ahk_class Winamp v1.x ; stop (f11)
vk7B::PostMessage, 0x111, 0x9c70,,, ahk_class Winamp v1.x ; next (f12)
P.s. Альтернативные способы (в обход Fn) запустить следующий трек в плеере не предлагать.
Я этот случай привёл в качестве примера.
Я же просил. В твоём скрипте не вижу где вообще используется Fn.
...но када я ручками на кнопки жму: Fn + F12
У меня в плеере следующий трек включается.
...запустить ручками обычную горячую клавишу (например F12), и что бы скрипт выполнил горячую клавишу с Fn....
Из-за не внятного формулирования своей мысли автора, эта тема ещё не решена. Следующий код не надо ни куда добавлять:
sc178::MsgBox, % "нажата клавиша "A_ThisHotkey
, если в окне сообщения написано "нажата клавиша sc178", пробуй этот код:
DetectHiddenWindows, On
sc178 & F9::PostMessage, 0x111, 0x9c6c,,, ahk_class Winamp v1.x ; prev
sc178 & F10::PostMessage, 0x111, 0x9c6e,,, ahk_class Winamp v1.x ; play/pause
sc178 & F11::PostMessage, 0x111, 0x9c6f,,, ahk_class Winamp v1.x ; stop
sc178 & F12::PostMessage, 0x111, 0x9c70,,, ahk_class Winamp v1.x ; next
sc178::MsgBox, % "нажата клавиша "A_ThisHotkey
в окне сообщения написано "нажата клавиша sc178"
DetectHiddenWindows, On sc178 & F9::PostMessage, 0x111, 0x9c6c,,, ahk_class Winamp v1.x ; prev sc178 & F10::PostMessage, 0x111, 0x9c6e,,, ahk_class Winamp v1.x ; play/pause sc178 & F11::PostMessage, 0x111, 0x9c6f,,, ahk_class Winamp v1.x ; stop sc178 & F12::PostMessage, 0x111, 0x9c70,,, ahk_class Winamp v1.x ; next
Это не совсем то что надо.
В твоём скрипте:
По нажатию ручками Fn+F12 -> скрипт выполняет: next
Это у меня работает и без скрипта.
Мне надо наоборот.
Что бы не я нажал ручками Fn+F12, а скрипт выполнил: Fn+F12.
А от пользователя (т.е. от меня) требуется, что бы он всего лишь запустил скрипт.
Или на крайний случай, что бы я ручками нажал
обычную горячую клавишу (например Contrl+F12 или просто F12),
а скрипт по этому действию выполнил горячую клавишу с Fn (в нашем случае Fn+F12).
Примерная идея скрипта (скрипт не работает):
DetectHiddenWindows, On
F12::send {sc178}{F12}
Что бы не я нажал ручками Fn+F12, а скрипт выполнил: Fn+F12.
А от пользователя (т.е. от меня) требуется, что бы он всего лишь запустил скрипт.
Такой вариант был уже предоставлен в посте #10, на, что ты отвелил:
...Send, {sc178 down}{F12}{sc178 up}
Это хозяйство тоже не работает
Странно, у меня такая комбинация срабатывает (ну естественно я заменяю sc178 на клавиатурный код любой другой клавиши)
F12::
Send, {sc11D Down}{F12}{sc11D Up} ; sc11D - RCtrl
KeyWait, % A_ThisHotkey
Return
, И вот такая тоже:
F12::
Send, {Ctrl Down}{F12}{Ctrl Up}
KeyWait, % A_ThisHotkey
Return
Или на крайний случай, что бы я ручками нажал
обычную горячую клавишу (например Contrl+F12 или просто F12),
а скрипт по этому действию выполнил горячую клавишу с Fn (в нашем случае Fn+F12).
Ну вот как вариант, можешь проверить:
Hotkey, F12, sc178 & F12
;Hotkey, Ctrl & F12, sc178 & F12
sc178 & F12::MsgBox, 262208,, % "нажата клавиша "A_ThisHotkey
Если такой вариант срабатывает, то должен и срабатывать и вот такой:
#InstallKeybdHook
Hotkey, F12, SendKeys
;Hotkey, Ctrl & F12, SendKeys
Return
SendKeys:
Send, {sc178 Down}{F12}{sc178 Up}
Return
Hotkey, F12, sc178 & F12
;Hotkey, Ctrl & F12, sc178 & F12
sc178 & F12::MsgBox, 262208,, % "нажата клавиша "A_ThisHotkey
1. Запускаю этот скрипт.
2. Жму ручками Fn + F12
3. Результат: Не чего не происходит.
Странно как то, Скрпит
Fn может нажать,
а сочетание клавишь (например Fn + F12), уже не может.
P.s.
А если такая идея:
Делаем 3 скрипта:
1й скрипт нажимает Fn
2й скрипт нажимает F12
3й скрипт запускает скрипт1 и скрипт2
Как тебе?
1й скрипт нажимает Fn
2й скрипт нажимает F12
3й скрипт запускает скрипт1 и скрипт2
А нет так не прокатит.
Даже первый скрипт из трёх написать не получится.
Нажать Fn получается.
А удерживать Fn не получается.
А мне как раз надо удерживать, что бы потом F12 нажать.
Send, {sc178 Down}
Такое удерживание не работает.
Вася Пупкин пишет:И как мне это применить.
Как я понял из "но када я ручками на кнопки жму: Fn + F12 У меня в плеере следующий трек включается" в вашей клавиатуре на комбинации Fn + F12 прошита команда - Media_Next.
Если вам нужен мспаинт, то :Media_Next::run mspaint.exe
вроде так.
Почитайте раздел хелпа Автохоткея "List of Keys, Mouse Buttons, and Joystick Controls", подраздел "Special Keys". Может тамшние примеры вам чем то помогут.
PS. Перечитал ваши посты. Не совсем понял вашу задачу: вам, в качестве примера, надо переключить следующий трек в плеере любой другой комбинацией клавиш, или присвоить хоткею Fn+F12 другое действие? Если второе, то, имхо, приведенный мною пример выше должен помочь. Если первое, то
кодхоткея:: Send, {Media_Next}
Как раз искал, как сделать, чтобы по моей клавише трек в плеере переключался. Спасибо!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Серый форум → Общение → AutoHotkey → AHK: Fn