Come si attiva lo stato attivo segue il mouse in Windows 10


44

Mi piacerebbe alzare il clic e lo sciatto focus-segue-mouse su Windows 10 perché questa è l'installazione che uso da anni su Windows e Linux.

Sotto Windows 10, ho provato le modifiche regedit Xmouse menzionate in questo link che erano originariamente pensate per Windows 8: http://winaero.com/blog/turn-on-xmouse-active-window-tracking-focus-follows-mouse- windows-8-1-windows-8-feature puntatore-in-e-windows-7 /

Tuttavia, ho riscontrato i seguenti problemi:

  1. Quando si apre il menu Start premendo il tasto Windows, non riceve l'input da tastiera.

  2. Quando apri Start, Cerca o Notifiche facendo clic su di essi, si chiudono prima che tu possa interagire con loro.

C'è un modo per ottenere la messa a fuoco utilizzabile segue il mouse?

Qualcuno sta usando con successo Win10 in questo modo?


Una soluzione alternativa per il problema n. 1 consiste nel fare clic sulla lente di ingrandimento (ricerca). Il tasto di scelta rapida per questo è Window + S.
andz

1
Potresti essere in grado di evitare il problema n. 2 impostando ActiveWndTrkTimeout su un valore più alto. WinAero Xmouse Tuner aveva un minimo di 500ms, ma ora è abbassato a un minimo di 100ms in WinAero Tweaker a causa di richieste schiaccianti. Non è ancora possibile abbassarlo a meno di 100 ms, ma potrebbe esserci una buona ragione per questo.
andz,

Risposte:


33

Usa i controlli X-Mouse , è il più vicino che ho trovato al vero Focus Follows Mouse e ha alcune opzioni da modificare. È una piccola utility open-source che non richiede installazione o riavvio e ti salva da modificare tu stesso il registro.

Per quanto ho sperimentato, posso usare la tastiera per cercare file / programmi dopo aver premuto il tasto Win. Inoltre, il menu Start e Notifiche non scompare prima che io possa usarli, anche con l'opzione di sollevamento al passaggio del mouse, poiché puoi impostare un piccolo ritardo per il comportamento (uno o duecento ms saranno sufficienti), che ti dà spazio più che sufficiente per spostare il puntatore nella nuova finestra.

L'ho usato per un po 'e ne sono abbastanza contento, oltre al bug.n window manager di piastrellatura. Questa configurazione è simile all'utilizzo di dwm su unix.


24

Il seguente script PowerShell dovrebbe avere lo stesso effetto del programma XMouse ... senza dover eseguire un binario di terze parti

Codice:

$signature = @"
[DllImport("user32.dll")]
public static extern bool SystemParametersInfo(int uAction, int uParam, ref 
int lpvParam, int flags );
"@

$systemParamInfo = Add-Type -memberDefinition  $signature -Name SloppyFocusMouse -passThru

[Int32]$newVal = 1
$systemParamInfo::SystemParametersInfo(0x1001, 0, [REF]$newVal, 2)

Costanti recuperate da qui


Funziona magnificamente, meglio di ogni altra cosa che ho provato. Basta salvarlo in un file .ps1, fare clic con il tasto destro del mouse e scegliere Esegui con Powershell. Puoi anche aggiungerlo nell'Utilità di pianificazione per iniziare all'avvio.
Zurd,

11

Le modifiche al registro menzionate nel link della domanda funzionano su Windows 10. Tuttavia, sembra che debbano essere fatte quando l'opzione "Attiva una finestra passandoci sopra con il mouse" è selezionata nelle impostazioni di accessibilità. Questa opzione è disponibile in Pannello di controllo> Accesso facilitato> Modifica funzionamento del mouse .

Se si verificano gli stessi problemi e la casella di controllo è selezionata, deselezionarla, fare clic su Applica, selezionarlo di nuovo e ripetere le modifiche. Il mouse dovrebbe comportarsi correttamente al prossimo accesso.


3
Tuttavia, fa quello che suggerisce il nome: alza automaticamente le finestre. OP vuole che NON si alzi, ma permetta comunque di concentrarsi su una finestra di sfondo. Seguire le istruzioni di Q's Winaero (impostando il primo codice esadecimale su 9F) e il login e il logout sembrano funzionare correttamente. Tasto Win + digitando = funziona per la ricerca. Il pulsante Win con il mouse + digitando = NON funziona per la ricerca se lo stato attivo è mai lontano da detto pulsante, ma lo fa se continuo a passare il mouse sopra il pulsante. Uccidere explorer.exe ed eseguire userinit.exe non ha funzionato per caricare le impostazioni del registro, quindi sembra necessario disconnettersi.
mpag,

L'applicazione delle modifiche al registro interrompe il rilancio automatico.
Alejosk,

6

Windows in realtà ha un flag per abilitare focus-follow-mouse ("tracking attivo della finestra"), che può essere abilitato facilmente tramite la mostruosa chiamata API Win32 "SystemParametersInfo" . Esistono programmi di terze parti per abilitare il flag, come i controlli X-Mouse , oppure è possibile eseguire la chiamata direttamente tramite PowerShell.

La documentazione non è sempre molto chiara su come pvParamviene utilizzato l' argomento e alcuni frammenti di PowerShell passano erroneamente un puntatore al valore, piuttosto che al valore stesso, quando si imposta questo particolare flag. Questo finisce per essere sempre interpretato come true, cioè lavorano accidentalmente per abilitare la bandiera, ma non per disabilitarla di nuovo.

Di seguito è riportato un frammento di PowerShell che esegue correttamente la chiamata. Include anche un corretto controllo degli errori, e ho cercato di optare per la pulizia piuttosto che per la brevità, per facilitare anche l'aggiunta di wrapper per altre funzionalità di SystemParametersInfo, nel caso ne trovassi qualcuno che ti interessa.

Grida a pinvoke.net per essere una risorsa utile per cose come questa.

Add-Type -TypeDefinition @'
    using System;
    using System.Runtime.InteropServices;
    using System.ComponentModel;

    public static class Spi {
        [System.FlagsAttribute]
        private enum Flags : uint {
            None            = 0x0,
            UpdateIniFile   = 0x1,
            SendChange      = 0x2,
        }

        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool SystemParametersInfo(
            uint uiAction, uint uiParam, UIntPtr pvParam, Flags flags );

        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool SystemParametersInfo(
            uint uiAction, uint uiParam, out bool pvParam, Flags flags );

        private static void check( bool ok ) {
            if( ! ok )
                throw new Win32Exception( Marshal.GetLastWin32Error() );
        }

        private static UIntPtr ToUIntPtr( this bool value ) {
            return new UIntPtr( value ? 1u : 0u );
        }

        public static bool GetActiveWindowTracking() {
            bool enabled;
            check( SystemParametersInfo( 0x1000, 0, out enabled, Flags.None ) );
            return enabled;
        }

        public static void SetActiveWindowTracking( bool enabled ) {
            // note: pvParam contains the boolean (cast to void*), not a pointer to it!
            check( SystemParametersInfo( 0x1001, 0, enabled.ToUIntPtr(), Flags.SendChange ) );
        }
    }
'@

# check if mouse-focus is enabled
[Spi]::GetActiveWindowTracking()

# disable mouse-focus (default)
[Spi]::SetActiveWindowTracking( $false )

# enable mouse-focus
[Spi]::SetActiveWindowTracking( $true )

2
Ciao, benvenuto al superutente. Per favore, quando fai nuovi contributi, prova a dare alcune spiegazioni allegate al tuo codice. Sebbene la tua risposta sembri corretta, sarebbe meglio se spiegassi PERCHÉ funziona, quindi se qualcuno vuole fare qualcosa di leggermente diverso, può ottenere un punto di partenza sulla tua risposta. Comunque, grazie per aver condiviso la tua conoscenza con noi!
DGoiko

Lì, ho perfezionato la spiegazione.
Matthijs

1
Grande! Sono contento di essere il tuo primo voto, spero che molto di più arriverà: D
DGoiko

1

Per coloro che non sono riusciti a farlo sottrarre semplicemente 40 dal primo byte di UserPreferencesMask, basta scaricare l'utilità WinAero Tweaker su http://winaero.com/download.php?view.1796

Si noti che il problema n. 1 sopra è ancora presente, ma può essere facilmente risolto semplicemente usando l'icona della lente di ingrandimento (ricerca) a destra del menu di avvio (tasto di scelta rapida Finestra + S). Un piccolo prezzo da pagare per ottenere la funzionalità X-Mouse.

Non ho riscontrato il problema n. 2 quando utilizzo WinAero Tweaker.


1

Utilizzando il metodo per ottenere il comportamento del mouse sciatto, a cui sono così abituato, dalle precedenti versioni di Windows e Linux dal post . Non riscontro il problema n. 2 che stai riscontrando. Il problema n. 1 che l'utente avrà tutti quando si utilizza questa modifica del Registro di sistema non è un problema. Fa esattamente come previsto perché hai modificato il modo in cui lo stato attivo viene gestito in Windows con questa modifica. L'uso del tasto Windows porta il mouse nel menu di avvio non nel menu di ricerca, quindi diventa attivo, non nel menu di ricerca. Quindi, se si desidera utilizzare la ricerca, fare clic sulla barra di ricerca o sull'icona dell'ingrandimento (a seconda delle impostazioni per il suo aspetto) o utilizzare la combinazione di tasti Win+ Se farà la cosa giusta.


0

Non ho ancora testato Winaero perché:

  1. Non mi interessa eseguire software sconosciuto da Internet.
  2. Poiché ho aggiornato tutti i PC che utilizzo da Windows 7 a Windows 10, l'impostazione "Attiva una finestra passandoci sopra con il mouse" ha continuato a essere attiva in Windows 10, anche se sembra non esserci alcun metodo di impostandolo nella GUI di Windows 10.

Non ho ancora trovato queste soluzioni alternative su Internet, quindi documenterò qui per gli altri.

Utilizzando le seguenti soluzioni alternative, è pratico l'utilizzo di Windows 10 in modalità Xmouse:

  1. Passare a un'altra finestra quando sono disponibili più finestre tramite l'icona dell'app nella barra delle applicazioni:

    NON fare clic sull'icona dell'app nella barra delle applicazioni prima di provare a selezionare una finestra. In tal caso, non appena si sposta il puntatore del mouse sopra la barra delle applicazioni, le finestre scompaiono. Passa il mouse sopra l'icona dell'app finché non vengono visualizzate le finestre, quindi puoi spostare il puntatore su quello che ti serve.

  2. Passare a un altro desktop o app virtuale utilizzando il pulsante di visualizzazione attività:

    • Fare clic sul pulsante di visualizzazione attività.
    • Fai di nuovo clic e tieni premuto il pulsante.
    • Spostare il puntatore sull'attività richiesta o sul desktop virtuale.
    • Rilascia il pulsante del mouse, quindi fai di nuovo clic.

Nota: l'impostazione "Scorri finestre inattive di Windows 10 quando ho sopra di esse" è un'utile aggiunta (vedi Start -> Impostazioni -> Dispositivi -> Mouse e touchpad ). Questo sembra indipendente dalla funzionalità di Xmouse e ON sembra essere il valore predefinito.


0

Impostare Regkey HKCU \ Control Panel \ Desktop \ ActiveWndTrackTimeout su un valore superiore a 0 su Ritardo installazione, a meno che non si attivi un'altra finestra


1
Correggi la tua chiave; è Trk non Traccia; ad esempio ActiveWndTrkTimeout. Non ho idea di cosa faccia la Traccia ma cambiare quella di Trk è ciò che funziona per me.
Lumpynose,

-2

Per risolvere il problema n. 2 su Windows 10

2) Quando apri Start, Cerca o Notifiche facendo clic su di essi, si chiudono prima che tu possa interagire con loro.

Tutto quello che devi fare è:

  • Premi Windows+X
  • Pannello di controllo
  • Facilità di accesso
  • Cambia il funzionamento del mouse
  • Abilita la casella di controllo: impedisce che le finestre vengano organizzate automaticamente quando vengono spostate sul bordo dello schermo

Non è necessario software di terze parti.

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.