Algumas perguntas sobre o uso automático do Autohotkey

2

Eu tenho usado este maravilhoso software por algum tempo agora, mas por apenas algumas coisas básicas. Então, eu estou querendo saber se o seguinte seria possível:

  • para usar um conjunto diferente de atalhos para diferentes aplicativos - para que um atalho execute ações diferentes em locais diferentes.

  • para fazer alguma forma de modos para aplicação, onde você poderia usar algum switch (estilo vim) e isso mudaria as coisas que o shortcat faria

  • se for possível colocar alguma legenda que indique qual modo você está usando - pouca melhoria do item anterior

Agradeço a todos por suas respostas.

    
por Jarek 21.12.2010 / 11:41

3 respostas

1

O ponto 1 parece resolvido. Quanto aos pontos 2 e 3, aqui está como você poderia fazê-lo; meu código pode não ser muito eficiente, mas funciona:

#Persistent                   ;--This needs to come before any
SetTimer, IsActiveTimer, 20   ;--return in the script.
IsActiveTimer:  ;--Below comes what the timer does
if StateIsActive = 1
{
  MouseGetPos, Px, Py   ;--The below creates tooltip when active
  ToolTip, "State is: Active", Px+40, Py+50, 5
}
else
{
ToolTip,,,, 5  ;--Removes tooltip when not active
   }
return
!^#z::   ;--This is the hotkey that toggles the state
         ;--between active and not active.
If StateIsActive = 1
{
StateIsActive := 0
}
else
{
StateIsActive := 1
}
return
!^#a::  ;--Hotkey that types either Zerg or Borg
        ;--depending on active/not active, so that you
        ;--may automatically choose the right party in
        ;--your documents in any potential war
If StateIsActive = 1
{
Sendinput, Zerg
}
Else
{
Sendinput, Borg
}
return
    
por 21.12.2010 / 14:34
1

Sim.

Para regras diferentes para aplicativos diferentes, procure em #ifWinActive .

Por exemplo:

; Make Ctrl+PageUp and Ctrl+PageDown work in Safari
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgUp::Send ^+[
#ifWinActive ahk_class {1C03B488-D53B-4a81-97F8-754559640193}
^PgDn::Send ^+]

#ifWinNotActive ahk_class PuTTY
+Ins::Send ^v
#ifWinNotActive ahk_class PuTTY
+Del::Send ^x
#ifWinNotActive ahk_class PuTTY
^Ins::Send ^c

Você clica com o botão direito do mouse no ícone AutoHotkey e clica com o botão direito do mouse em Window Spy para descobrir o valor da ahk_class.

Modos como no Vi parecem ser possíveis também. Dê uma olhada no Kommand por exemplo.

    
por 21.12.2010 / 11:47
1

to make some form of modes for application, where you could use some switch (vim style) and this would change things the shortcat would do

Você pode usar a instrução #If disponível na distribuição atual do AutoHotkey_L (a que você deve baixar do site). Você pode escrever algo assim:

#If Winactive("window_name") and (Mode = Mode1)

F1::MsgBox, Mode1
::mode::Mode1

#If Winactive("window_name") and (Mode = Mode2)

F1::MsgBox, Mode2
::mode::Mode2

Você pode colocar #If no final para terminar todas as condicionais.

O que você quer dizer com "uma legenda"? Você pode criar uma pequena janela semelhante a uma barra de ferramentas com o nome do modo ou uma imagem e atualizá-la sempre que alterar o modo ou com a ajuda de um temporizador que rastreia o modo atual.

    
por 25.12.2011 / 20:16

Tags