(No pedido do OP, movi a resposta dos comentários aqui)
Se você quiser experimentar um programa de terceiros, tente AutoHotKey (deixe a abreviação AHK mais adiante)
É um projeto de vida longa de origem aberta que permite atribuir de várias formas "Teclas de atalho" a qualquer programa, bem como ao sistema operacional. Não está limitado a combinações comuns de Ctrl +, mas também permite criar frases como string para várias automações. Pode ser apenas um simples criador de teclas de atalho ou scripts poderosos de automação de recursos completos que podem ser usados praticamente como substitutos dos scripts bat
, cmd
, vbs
, ps
.
O caso de uso mais simples, como OP perguntou - poderia ser apenas uma única string no script AHK que se parece com:
F4::WinActivate, ahk_exe /full/path/to/program_that_need_to_be_activated
Onde F4
- uma tecla de atalho (tecla funcional no teclado), mas pode ser prática qualquer combinação de teclas e até strings.
Poderia ser automatizado ainda mais, por exemplo, - pressionando F4
ativar o programa requerido e se não estiver executando o processo, inicie e ative (defina o foco e traga para frente, também conhecido como índice Z) dessa maneira. parece:
F4:: ; Comment: Use F4 key to activate or start firefox
{
if WinExist("ahk_exe firefox.exe")
WinActivate, ahk_exe firefox.exe
else
Run, firefox.exe
}
Return
; next is hot key for another program
; We assigning here Windows key + z to activate Notepad++
#z::
{
np = C:\Program Files (x86)\Notepad++\notepad++.exe
if WinExist("ahk_exe %np%")
WinActivate, ahk_exe "%np%"
else
Run, "%np%"
}
Return
; Find and activate Firefox by Windows class by WinKey+x
DetectHiddenWindows, On
#x::
{
fp = C:\Program Files\Mozilla Firefox\firefox.exe
if WinExist("ahk_class MozillaWindowClass")
WinActivate, ahk_class MozillaWindowClass
else
Run, "%fp%"
}
Return
O AHK é muito fácil de configurar e vem com um rico arquivo chm
(help) que cobre muitos casos de usuários que incluem exemplos de como configurar a interface GUI do AHK e usar objetos COM para automação. Os scripts AHK podem ser combinados em um único arquivo de script ou podem ser vários arquivos que podem ser iniciados sob demanda.
AHK suportando compilação de script que simplifica sua distribuição como programa compilado que faz o mesmo que a configuração independente do AHK
P.S.
Abaixo está a solução AHK para o Firefox
com extensão MinTrayR (que esconde o firefox na bandeja do sistema)
Eu tentei encontrar uma solução mais elegante, mas depois de analisar o código-fonte MinTrayR , descobri que ele não usa WM_USER
mensagens do Windows e aceita apenas mensagens padrão do SO que exigirão muito esforço para localizar o identificador correto do botão do Firefox na bandeja do sistema programaticamente. Embora eu acredite que ainda seja possível, usei abaixo outra estratégia: o script AHK procurando uma imagem específica (o ícone do firefox na bandeja do sistema) na tela e clique duas vezes na tecla de atalho pressionando.
Embora seja fácil implementá-lo, seria necessário alguns passos iniciais do lado do usuário:
- Minimize o Firefox (mais FF).
Certifique-se de que o ícone FF esteja visível em sys.tray
(No Control Panel\All Control Panel Items\Notification Area Icons
definir o status do Firefox como Show icon and notification
)
- Pressione PrintScreen enquanto o ícone FF estiver visível no
bandeja do sistema. (Isso coloca uma imagem na área de transferência.)
- Abra um programa de processamento de imagens, como
Paint
.
- Cole o conteúdo da área de transferência (isto é, a captura de tela).
- Selecione uma região que não varia e que seja exclusiva da
Ícone do Firefox na bandeja do sistema. (Selecione o mais próximo possível para capturar apenas o globo com raposa. Use o zoom para selecionar com precisão a área do ícone)
-
Crop
área selecionada e salve-a como C:\Users\Public\Pictures\ff.png
Depois disso, você pode começar a usar o seguinte script AHK para maximizar o Firefox a partir da bandeja do sistema ou iniciar uma nova instância do Firefox se ele não estiver sendo executado pressionando as teclas de atalho WinKey + v .
(Se você estiver usando a versão 32bits do Firefox, substitua string C:\Program Files\Mozilla Firefox\firefox.exe
por C:\Program Files (x86)\Mozilla Firefox\firefox.exe
)
#NoEnv
#v::
{
ffIconFile = C:\Users\Public\Pictures\ff.png
fp = C:\Program Files\Mozilla Firefox\firefox.exe
Processname=firefox.exe
Process, Exist, %Processname%
If !ErrorLevel
{
MsgBox, % "Process " Processname " does not exist. Going to start a new one"
Run, "%fp%"
Return
}
pid := ErrorLevel
IfWinNotActive, % "ahk_pid " pid
{
CoordMode Pixel
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, %ffIconFile%
if ErrorLevel = 2
MsgBox Could not conduct the search (icon file path ?).
else if ErrorLevel = 1
MsgBox Firefox icon could not be found on the screen.
else
{ ; MsgBox The icon was found at %FoundX%x%FoundY%.
x := FoundX + 10
y := FoundY + 10
Click %x%, %y%, 0
Click 2
}
}
}
Return