Envio de controle

Envio de controle

Eu uso principalmente o Chrome, mas estou aberto a usar qualquer navegador que me permita fazer isso.

No Windows 10, você pode rolar qualquer janela, mesmo que ela não esteja ativa no momento, passando o mouse sobre ela e usando a roda de rolagem.

É possível alternar de alguma forma as guias do navegador de uma janela inativa?

TBH, parece que me lembro de Scroll Left/Right (pelo menos as chamadas funções do meu mouse - um da Logitech) funcionando há algum tempo, mas não parece mais ser o caso.

Editar: Estava prestes a fazer a mesma pergunta, o SU me disse que eu já tinha feito isso. Então bata...

Responder1

Uma maneira de fazer isso seria através de um script AHK usando oControlSendfunção para passar pressionamentos de teclas simulados diretamente para a janela desejada (isso pode ser feito para janelas inativas, minimizadas ou ocultas). Você pode então vincular qualquer sequência que funcione para você diretamente a uma tecla de atalho por conveniência. Aqui está uma cópia direta da página de documentação do AHK (link acima), caso a página caia:

Envio de controle[bruto]

Envia pressionamentos de teclas simulados para uma janela ou controle.
ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
ControlSendRaw: mesmos parâmetros acima.

Parâmetros

Ao controle

Pode ser ClassNN (o nome da classe e o número da instância do controle) ou o texto do controle, ambos os quais podem ser determinados através do Window Spy. Ao usar texto, o comportamento de correspondência é determinado por SetTitleMatchMode. Se este parâmetro estiver em branco ou omitido, o controle superior da janela de destino será usado. Se este parâmetro for ahk_parent, as teclas digitadas serão enviadas diretamente para a janela de destino em vez de um de seus controles (veja Automatizando o Winamp para obter um exemplo).
Para operar no HWND (identificador de janela) de um controle, deixe o parâmetro Control em branco e especifique ahk_id %ControlHwnd% para o parâmetro WinTitle (isso também funciona em controles ocultos mesmo quando DetectHiddenWindows está desativado). O HWND de um controle normalmente é recuperado por meio de ControlGet Hwnd, MouseGetPos ou DllCall().

Chaves

A sequência de teclas a serem enviadas (consulte o comando Enviar para obter detalhes). Para enviar uma vírgula literal, use escape (`,). A taxa na qual os caracteres são enviados é determinada por SetKeyDelay. Ao contrário do comando Enviar, os cliques do mouse não podem ser enviados pelo ControlSend. Use ControlClick para isso.

WinTitle

Um título de janela ou outros critérios que identifiquem a janela de destino. Consulte WinTitle.

WinText

Se presente, este parâmetro deve ser uma substring de um único elemento de texto da janela de destino (conforme revelado pelo utilitário Window Spy incluído). Elementos de texto ocultos serão detectados se DetectHiddenText estiver ativado.

ExcluirTítulo

As janelas cujos títulos incluam este valor não serão consideradas.

ExcluirTexto

As janelas cujo texto inclua este valor não serão consideradas.

Manipulação de erros

[v1.1.04+]: Este comando é capaz de lançar uma exceção em caso de falha. Para obter mais informações, consulte Erros de tempo de execução.

ErrorLevel é definido como 1 se houver um problema ou 0 caso contrário.

Observações

ControlSendRaw envia as teclas digitadas no parâmetro Keys sem traduzir {Enter} para Enter, ^c para Control+C, etc. Para obter detalhes, consulte Modo Raw. Também é válido usar {Raw} ou {Text} com ControlSend. [v1.1.27+]: O modo de texto pode ser mais confiável para enviar texto.
Se o parâmetro Control for omitido, este comando tentará enviar diretamente para a janela de destino, enviando para seu controle superior (que geralmente é o correto) ou para a própria janela, se não houver controles. Isto é útil se uma janela não parece ter nenhum controle ou apenas pela conveniência de não ter que se preocupar com qual controle enviar.
Por padrão, as teclas modificadoras (Control, Alt, Shift e Win) são enviadas como normalmente seriam pelo comando Enviar. Isso permite que o prompt de comando e outras janelas do console detectem corretamente letras maiúsculas, caracteres de controle, etc. Também pode melhorar a confiabilidade de outras maneiras.
No entanto, em alguns casos, esses eventos modificadores podem interferir na janela ativa, especialmente se o usuário estiver digitando ativamente durante um ControlSend ou se a tecla Alt estiver sendo enviada (já que Alt ativa a barra de menu da janela ativa). Isso pode ser evitado enviando explicitamente eventos modificadores para cima e para baixo, como neste exemplo:

ControlSend, Edit1, {Alt down}f{Alt up}, Untitled - Notepad
O método acima também permite o envio de teclas modificadoras (Control/Alt/Shift/Win) enquanto a estação de trabalho está bloqueada (protegida por prompt de logon).
BlockInput deve ser evitado ao usar ControlSend em uma janela de console, como o prompt de comando. Isso ocorre porque pode impedir que teclas modificadoras e maiúsculas, como Control, funcionem corretamente.
O valor de SetKeyDelay determina a velocidade com que as chaves são enviadas. Se a janela de destino não receber as teclas digitadas de forma confiável, tente aumentar a duração do pressionamento por meio do segundo parâmetro de SetKeyDelay como nestes exemplos: SetKeyDelay, 10, 10 SetKeyDelay, 0, 10 SetKeyDelay, -1, 0 Se o controle de destino for um controle de edição (ou algo semelhante), os seguintes são geralmente mais confiáveis ​​e mais rápidos do que ControlSend: Control, EditPaste, This text will be inserted at the caret position., ControlName, WinTitle
ControlSetText, ControlName, This text will entirely replace any current text., WinTitle
ControlSend geralmente não é capaz de manipular a barra de menu de uma janela. Para contornar isso, use WinMenuSelectItem. Se isso não for possível devido à natureza da barra de menu, você pode tentar descobrir a mensagem que corresponde ao item de menu desejado seguindo o Tutorial SendMessage.
Os títulos e o texto das janelas diferenciam maiúsculas de minúsculas. As janelas ocultas não são detectadas, a menos que o DetectHiddenWindows esteja ativado.

Relacionado

SetKeyDelay, sequências de escape (por exemplo `%), Control, ControlGet, ControlGetText, ControlMove, ControlGetPos, ControlClick, ControlSetText, ControlFocus, Send, Automating Winamp ...

informação relacionada