1

Тема: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Возможно ли, в определенном приложении, назначить 2 горячих клавиши на одну поочередно, например, запустил LibreOffice, первое нажатие на Space посылает Ctrl+X, второе Ctrl+V, третье, опять Ctrl+X, т.е. по кругу.

2

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

f11::
if (n != 1)
{
   msgbox, 1
   n = 1
}
Else
{
   msgbox, 2
   n =
}
return

3

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Malcev
А почему msgbox? Радует, реализовать это можно, но как сделать, чтобы скрипт работал только когда целевая программа на переднем плане и как посылать клавиши вместо msgbox?

4 (изменено: Malcev, 2014-06-19 22:03:45)

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

http://www.script-coding.com/AutoHotkey … ctive.html
http://www.script-coding.com/AutoHotkey/Send.html

5 (изменено: Ed, 2014-06-19 22:56:46)

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Malcev
Спасибо, попробую разобраться, не там читал. А в соседней теме не могли бы помочь?
http://forum.script-coding.com/viewtopic.php?id=9713

6

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

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

#IfWinActive ahk_class Notepad++
Space::
if (n != 1)
{
   Send ^x
   n = 1
}
Else
{
   Send ^v
   n =
}
return

7

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Подскажите пожалуйста, можно ли в один скрипт включать множество таких переназначений? Вот так не работает:

#IfWinActive, - JPEGView
#IfWinActive, - paint.net
   {
   ^LButton::
if (n != 1)
{
   Send r
   n = 1
}
Else
{
   Send e
   n =
}
return
}

#IfWinActive, - JPEGView
   {
   ^Q::
if (n != 1)
{
   Send t
   n = 1
}
Else
{
   Send e
   n =
}
return
}

#IfWinActive, - JPEGView
   {
   ^W::
if (n != 1)
{
   Send n
   n = 1
}
Else
{
   Send c
   n =
}
return
}

8

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Работает (но, видимо, не так, как вам хочется). Токены для разных окон и разных хоткеев надо использовать разные, а у вас везде один и тот же "n".

9

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Drugoy
Оказалось у меня ошибка в названии окна, " - JPEGView" не работает, "ahk_exe JPEGView.exe" работает. Спасибо за информацию о токенах, теперь понял зачем. Зато прогресс, разобрался, как сделать Tooltip с информацией на каждый клик.


#IfWinActive, ahk_exe JPEGView.exe
   {
   ^LButton::
if (n != 1)
{
   Send r
   n = 1
   #Persistent
   ToolTip, Вы нажали клавишу R
   SetTimer, RemoveToolTip1, 2000
   return
   RemoveToolTip1:
   SetTimer, RemoveToolTip1, Off
   ToolTip
   return
}
Else
{
   Send e
   n =
   #Persistent
   ToolTip, Вы нажали клавишу E
   SetTimer, RemoveToolTip2, 2000
   return
   RemoveToolTip2:
   SetTimer, RemoveToolTip2, Off
   ToolTip
   return
}
return
}

#IfWinActive, ahk_exe JPEGView.exe
   {
   ^Q::
if (b != 1)
{
   Send t
   b = 1
}
Else
{
   Send e
   b =
}
return
}

#IfWinActive, ahk_exe JPEGView.exe
   {
   ^W::
if (v != 1)
{
   Send n
   v = 1
}
Else
{
   Send c
   v =
}
return
}

#IfWinActive, ahk_exe PaintDotNet.exe
   {
   ^LButton::
if (c != 1)
{
   Send r
   c = 1
}
Else
{
   Send e
   c =
}
return
}

10

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Благодаря Tooltip-у обнаружил небольшую проблему, к примеру, запустили целевую программу, нажали ^LButton - послалась клавиша R, вышли из программы и заново запустили, пошлется клавиша E, а нужно опять R. Как бы сделать так, чтобы скрипт замечал, когда программа закрывается и обнулял состояние?

11 (изменено: Malcev, 2014-06-30 01:14:44)

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

Можно в начале скрипта сделать проверку:

loop
{
   IfWinNotExist, твое окно
      n =
   sleep, 100
}

Оказалось у меня ошибка в названии окна, " - JPEGView" не работает, "ahk_exe JPEGView.exe" работает.

Это зависит от SetTitleMatchMode.

12

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

loop
{
   IfWinNotExist, ahk_exe JPEGView.exe
      n = 
      b = 
      v =
   sleep, 100
}

Подскажите пожалуйста, если установить вот такой код, то у токенов b и v не работают вторые горячие клавиши, как правильно добавить множество токенов?

13

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

loop
{
    IfWinNotExist, ahk_exe JPEGView.exe
        n :=  b := v := ""
    sleep, 100
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14

Re: AHK: Возможно ли, назначить 2 горячих клавиши на одну и зациклить?

serzh82saratov
Спасибо большое.