La rimappatura della chiave Browser_Home non riesce quando la finestra del browser non è attiva


2

Ho un telecomando bluetooth con una Browser_Homechiave, che sto tentando di rimappare con AutoHotkey sul mio computer Windows 10.

Per impostazione predefinita, premendo Browser_Homefa una delle due cose:

  • Se la finestra attiva è il mio browser predefinito (Firefox nel mio caso), la scheda corrente passa alla nuova scheda. *
  • Se la finestra in primo piano è qualcos'altro, una nuova finestra del browser viene aperta e messa a fuoco, aperta nella nuova scheda. *

* Presumibilmente, la mia homepage configurata si aprirà se la configurassi su qualsiasi altra cosa.

Ora provo a rimappare Browser_Homeutilizzando AutoHotkey:

Browser_Home::
    MsgBox Browser home button pressed
Return

(Modifica: questa è la totalità dello script che sto eseguendo e mi sono assicurato che fosse l'unico script AHK in esecuzione.)

Gli effetti sono diversi, a seconda che sia attiva una finestra di Firefox quando premo Browser_Home:

  • Se la finestra attiva è il mio browser predefinito (Firefox nel mio caso), si verifica il comportamento desiderato: la pressione del tasto viene intercettata e viene visualizzata una finestra di messaggio. Nessuna scheda del browser è interessata.
  • Se la finestra attiva non è una finestra del browser predefinita, lo script AHK sembra non avere alcun effetto: una nuova finestra del browser viene aperta e messa a fuoco, aperta nella nuova scheda. Non viene visualizzata alcuna finestra di messaggio.

Si noti che lo stesso comportamento sembra verificarsi se passo MessageBoxcon TrayTipo Send.

Chiaramente la rimappatura non riesce quando una finestra del browser predefinita non è a fuoco! Questa è un'enorme percentuale dei miei casi di utilizzo e come tale estremamente indesiderabile. C'è un modo per rimappare con successo la Browser_Homechiave in ogni momento?

Nota: so per certo che la chiave in questione Browser_Homeproviene dalla cronologia della pressione dei tasti di AutoHotKey.


Sembra molto che tu abbia incluso accidentalmente la definizione del tasto di scelta rapida all'interno dell'ambito di una #IfWinActiveclausola.
Aaron Harris,

@AaronHarris Capisco la sensazione, ma questo non sembra essere il caso. Il comportamento descritto su persiste quando entrambe (a) le righe sopra formano l'intero script; e (b) quando questo è l'unico script in esecuzione. Immagino che questo comportamento sia lasciato da qualcosa come #IfWinActivel'elaborazione di un Browser_Hometasto premuto in Windows - vedi la mia descrizione del comportamento predefinito del tasto premuto, e come dipende dalla finestra a fuoco.
jjc385,

Sì, in un certo senso ho pensato che questo fosse un "è il computer collegato" sparato nel buio, ma è meglio controllare prima le cose stupide. Temo di essere senza idee ora, però.
Aaron Harris,

Messaggio molto ben scritto, pollice in alto. (1) Il keypress si registra nella cronologia del keypress quando MsgBox non si attiva? (2) Sai se esiste un processo intermedio o un programma che associa il dispositivo bluetooth alla tastiera? (o semplicemente utilizzando il driver bluetooth di Windows integrato?) (3) Hai provato a forzare l'esecuzione dello script a un livello di privilegio elevato per vedere se esiste una discrepanza del livello di privilegio da qualche parte? Se la risposta a # 1 e # 3 è no, prova a eseguire elevato per verificare il funzionamento e / o la cronologia delle chiavi su admin.
JJohnston2,

Inoltre, non fa mai male aggiungere #IfWinActive prima della definizione del tasto di scelta rapida poiché si desidera sempre che l'ambito della definizione sia globale. Questa è un'abitudine relativamente buona per salvarti un mal di testa qui o là quando inizi ad aggiungere altri tasti di scelta rapida.
JJohnston2,

Risposte:


0

Non so cosa stai cercando di fare, ma nel mio caso il pulsante Browser_Home che apre una nuova finestra del browser si trova nella posizione del tasto ESC e non ha funzionato in questo modo, quindi l'utilizzo di Autohotkey con questo script ha fatto il lavoro.

script:

#InputLevel 1
Browser_Home::Escape

#InputLevel 0
; This hotkey can be triggered by both Browser_Home and Escape:

~Escape::Escape

Spero che possa aiutarti in qualche modo. Godere!!!


Grazie per essere tornato a una domanda così vecchia che chiaramente è caduta dal mio radar. Quando la finestra focalizzata è il mio browser predefinito, funziona (come ha fatto il mio tentativo sopra). Sfortunatamente, quando la finestra focalizzata è qualcos'altro, entrambi (a) scappano e (b) si apre una nuova finestra del browser. In quest'ultimo caso sembra entrambi ESCe Browser_Homevengono inviati al sistema operativo.
jjc385,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.