Tecla de atalho condicional ou incluir no AutoHotKey

4

Existe uma maneira de definir uma tecla de atalho condicionalmente no AutoHotKey? Eu quero fazer diferentes mapeamentos de teclado para diferentes máquinas com diferentes teclados físicos.

Isso é o que eu quero fazer:

RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName
If ( ComputerName = BDWELLE-DIM8300 ) 
{
 #Include %A_ScriptDir%\Mappings-BDWELLE-DIM8300.ahk
}

OR

RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName
If ( ComputerName = BDWELLE-DIM8300 ) 
{
 LWin::LAlt
    [more hotkey definitions that only apply to this machine]
}

mas desde que o AHK analisa definições de Hotkey e #Include declarações ANTES de interpretar instruções If, as definições de Teclas de Atalho (se enterradas em um #Include ou não) não respeitam a condição If.

Obrigado por me apontar para o AutoHotKey_L!

Você tem um exemplo específico de como definir uma hotkey condicionalmente? A sintaxe é muito confusa. Aqui está o que estou tentando (depois de ter instalado o AutoHotKey_L.exe no lugar do AutoHotKey.exe):

RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName 
#If ( ComputerName = BDWELLE-DIM8300 ) 
LWin::LAlt 

mas isso parece não funcionar ...

    
por Bowen 18.12.2009 / 16:35

5 respostas

2

Esta é uma pergunta antiga, eu sei, mas eu tive que fazer isso hoje de manhã, e é assim que eu consegui trabalhar no AutoHotkey_L:

#If %computername% = work-computer
^h::MsgBox Work
#If

#If %computername% != work-computer
^h::MsgBox Not at Work
#If

O ponto chave é que o nome do seu computador não é citado . Isso me tropeçou por um bom tempo.

Espero que ajude alguém a sair!

    
por 08.10.2012 / 18:41
1

Veja o comando de atalho - ele pode criar ou modificar HKs dinamicamente em qualquer lugar em um script. / p>     

por 26.01.2010 / 06:30
1

O Lifehacker apresentou um script AHK chamado AutoInclude que ajuda a selecionar quais scripts para usar em computadores diferentes. Isso é feito concatenando textualmente os scripts em um arquivo e, em seguida, executando esse arquivo.

Disclaimer: eu não usei isso.

    
por 11.02.2010 / 01:31
1

Eu resolvi isso criando scripts separados para cada PC contendo as teclas de atalho específicas do PC, incluindo um script comum para as teclas de atalho compartilhadas e usando um script separado para iniciar o script apropriado.

Common.ahk

; Common hotkeys go here

[nome do PC] .ahk

#Include %A_ScriptDir%\Common.ahk

; PC-specific hotkeys go here

Load.ahk

If FileExist(A_ScriptDir . "\" . A_ComputerName . ".ahk")
    Run "autohotkey.exe" %A_ScriptDir%\%A_ComputerName%.ahk
Else
    Run "autohotkey.exe" %A_ScriptDir%\Common.ahk
    
por 12.02.2012 / 12:39
0

Você pode querer dar uma Autohotkey L . Entre outras coisas, tem uma instrução #If, que funciona como #IfWinActive, mas para código arbitrário.

    
por 18.12.2009 / 17:00