1

Тема: AHK: Fn

На ноутбуках есть кнопка Fn
Можно ли с помощью скрипта запустить, какую нибудь горячую клавишу с использованием этой кнопки Fn?
Например: Fn + F12

2

Re: AHK: Fn

Запустите следующий код и нажмите 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

3

Re: AHK: Fn

http://img-fotki.yandex.ru/get/5309/46394254.0/0_704ba_13056ab2_L


Потыкал кнопку Fn несколько раз, результаты на картинке.
Как же мне это применить, например для Fn+F12?

Такие варианты не работают:
Send,  FF{F12}
Send,  178{F12}
Send,  {FF}{F12}
Send,  {178}{F12}

4

Re: AHK: Fn

Работают, отправляется и FF и 178 и F12.

5

Re: AHK: Fn

а у меня почему не работают

6

Re: AHK: Fn

Send, {vkFF}{F12}

или

Send, {sc178}{F12}

7

Re: AHK: Fn

Вася Пупкин пишет:

а у меня почему не работают

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Fn

teadrinker пишет:

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

ОК.

Send, {vkFF}{F12}
Send, {sc178}{F12}

Эти два варианта тоже почемуто не работают.

9

Re: AHK: Fn

Замечательно работают.
Может вы какой-то иной смысл в «не работают» вкладываете?

10

Re: AHK: Fn

В первом сообщении Вася Пупкин спрашивал про Fn + F12 (то есть одновременно).

Такой скрипт посылает нажатия клавиш последовательно:


Send, {vkFF}{F12}
Send, {sc178}{F12}

Поэтому предлагаю попробовать так:


Send, {vkFF down}{F12}{vkFF up}
Send, {sc178 down}{F12}{sc178 up}

11 (изменено: Вася Пупкин, 2011-09-18 22:19:20)

Re: AHK: Fn

Send, {vkFF down}{F12}{vkFF up}
Send, {sc178 down}{F12}{sc178 up}

Это хозяйство тоже не работает

creature.ws пишет:

Может вы какой-то иной смысл в «не работают» вкладываете?

Незнай какой я смысл вкладываю,
но када я ручками на кнопки жму: Fn + F12
У меня в плеере следующий трек включается.
А с помощью скрипта, почемуто, на следующий трек не как не хочет переключаться.

P.s. Альтернативные способы (в обход Fn) запустить следующий трек в плеере не предлагать.
Я этот случай привёл в качестве примера.

P.s.2. Пытался определить код клавиши через AutoScriptWriter.exe
Он выдаёт, что Fn это:
Send,  255
Пробовал различные комбинации с 255, то же не помогает.

12 (изменено: Mikki, 2011-09-19 16:49:46)

Re: AHK: Fn

Предложение - замените переключение следующего трека на простое выскакивание окна

"MsgBox, СКРИПТРАБОТАЕТ ;

так точно будет видно, что проблема не в команде смены трека, а то - "много переменных"

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

13

Re: AHK: Fn

Это не возможно.
Я пробовал поменять горячие клавиши с Fn. У меня не получились.
Это сочетание вшито, как то в дрова ноутбука, которые изменить, сложно/невозможно.

14 (изменено: Mikki, 2011-09-20 16:42:07)

Re: AHK: 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}
Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

15 (изменено: Grey, 2011-09-20 19:42:28)

Re: AHK: Fn

Вася Пупкин пишет:

Пытался определить код клавиши через AutoScriptWriter.exe
Он выдаёт, что Fn это:
Send,  255
Пробовал различные комбинации с 255, то же не помогает.

255 это значение в десятичной системе счисления, в шестнадцатеричной системе это FF, можно попробовать так ещё:

Send, {vkFFsc178 Down}{F12}{vkFFsc178 Up}

16

Re: AHK: Fn

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
Типа в место следующего трека можно сделать запуск пейнта так?
Это не работает.

17

Re: AHK: Fn

~sc178::
   Send, {F12}
   KeyWait, sc178
   Return

18 (изменено: Mikki, 2011-09-21 15:03:25)

Re: AHK: Fn

Вася Пупкин пишет:

И как мне это применить.

Как я понял из "но када я ручками на кнопки жму: 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}
Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

19

Re: AHK: Fn

Grey пишет:
~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}

не чего не происходит


Mikki пишет:

Почитайте раздел хелпа Автохоткея "List of Keys, Mouse Buttons, and Joystick Controls", подраздел "Special Keys". Может тамшние примеры вам чем то помогут.

Хорошо, почитаю

20

Re: AHK: Fn

MsgBox, % GetKeyName("sc178")

21

Re: AHK: Fn

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,
но почемуто не выполняет.

22 (изменено: Grey, 2011-09-22 22:07:59)

Re: AHK: Fn

Последний свой код выложил не для того, чтобы его ты добавил в скипт выложеный ранее, а для того, чтобы ты мог проверить, отображается ли название в окне (MsgBox) этой функциональной клавиши (Fn) по клавиатурному коду (sc). Если, что-то у тебя всё же отображается, пиши, что именно. Какой плэер используешь?

23

Re: AHK: Fn

~sc178::
   Send, {F12}
   MsgBox, % GetKeyName("sc178")
   Return

Этот скрипт, по нажатию Fn выводит:
http://img-fotki.yandex.ru/get/5308/46394254.0/0_70949_5b55cba8_M

Плеер:
The KMPlayer 3.0.0.1440 Final.exe

24

Re: AHK: Fn

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)

25

Re: AHK: Fn

Вася Пупкин пишет:

P.s. Альтернативные способы (в обход Fn) запустить следующий трек в плеере не предлагать.
Я этот случай привёл в качестве примера.

Я же просил. В твоём скрипте не вижу где вообще используется Fn.

26

Re: AHK: 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

27

Re: AHK: Fn

sc178::MsgBox, % "нажата клавиша "A_ThisHotkey

в окне сообщения написано "нажата клавиша sc178"


Grey пишет:
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}

28

Re: AHK: Fn

Вася Пупкин пишет:

Что бы не я нажал ручками 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

29 (изменено: Вася Пупкин, 2011-09-24 21:16:58)

Re: AHK: Fn

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

Как тебе?

30

Re: AHK: Fn

Вася Пупкин пишет:

1й скрипт нажимает Fn
2й скрипт нажимает F12
3й скрипт запускает скрипт1 и скрипт2

А нет так не прокатит.
Даже первый скрипт из трёх написать не получится.
Нажать Fn получается.
А удерживать Fn не получается.
А мне как раз надо удерживать, что бы потом F12 нажать.
Send, {sc178 Down}
Такое удерживание не работает.

31

Re: AHK: Fn

Mikki пишет:
Вася Пупкин пишет:

И как мне это применить.

Как я понял из "но када я ручками на кнопки жму: 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}

Как раз искал, как сделать, чтобы по моей клавише трек в плеере переключался. Спасибо!