คุณเปิดใช้งานการโฟกัสตามเมาส์ใน Windows 10 ได้อย่างไร


44

ฉันต้องการเม้าส์ยกระดับเมื่อคลิกและโฟกัสอย่างช้าๆบน Windows 10 เพราะนี่คือการตั้งค่าที่ฉันใช้ใน Windows และ Linux เป็นเวลาหลายปี

ภายใต้ Windows 10 ฉันลองใช้การเปลี่ยนแปลง regedit Xmouse ที่กล่าวถึงในลิงค์นี้ซึ่งเดิมมีความหมายสำหรับ Windows 8: http://winaero.com/blog/turn-on-xmouse-active-window-tracking-focus-follow-follow ชี้คุณลักษณะในหน้าต่าง-8-1-Windows-8 และหน้าต่าง 7 /

อย่างไรก็ตามฉันพบปัญหาต่อไปนี้:

  1. เมื่อคุณเปิดเมนู Start โดยการกดปุ่ม Windows มันจะไม่ได้รับการป้อนข้อมูลด้วยแป้นพิมพ์

  2. เมื่อคุณเปิดเริ่มค้นหาหรือการแจ้งเตือนโดยคลิกที่พวกเขาพวกเขาปิดก่อนที่คุณจะสามารถโต้ตอบกับพวกเขา

อย่างไรก็ตามมีวิธีการโฟกัสที่ใช้งานได้ตามเมาส์หรือไม่?

ทุกคนประสบความสำเร็จในการใช้ Win10 เช่นนี้หรือไม่?


วิธีแก้ปัญหาสำหรับปัญหา # 1 คือการคลิกแว่นขยาย (ค้นหา) แทน ปุ่มลัดสำหรับสิ่งนี้คือ Window + S.
andz

1
คุณอาจสามารถหลีกเลี่ยงปัญหา # 2 ได้โดยการตั้งค่า ActiveWndTrkTimeout ให้เป็นค่าที่สูงขึ้น WinAero Xmouse Tuner เคยมีอย่างน้อย 500ms แต่ตอนนี้มันลดลงต่ำสุดที่ 100ms ใน WinAero Tweaker เนื่องจากมีคำขอมากมาย ยังคงเป็นไปไม่ได้ที่จะลดให้ต่ำกว่า 100ms แต่อาจมีเหตุผลที่ดีสำหรับสิ่งนั้น
andz

คำตอบ:


33

ใช้การควบคุมด้วย X-Mouseมันเป็นสิ่งที่ใกล้เคียงที่สุดที่ฉันพบว่าเป็นโฟกัสที่ตามมาอย่างแท้จริงและมีตัวเลือกในการปรับแต่ง เป็นยูทิลิตีโอเพ่นซอร์สขนาดเล็กที่ไม่จำเป็นต้องติดตั้งหรือบูตเครื่องใหม่และช่วยให้คุณไม่ต้องเปลี่ยนรีจิสทรีด้วยตนเอง

เท่าที่ฉันทดลองฉันสามารถใช้แป้นพิมพ์เพื่อค้นหาไฟล์ / โปรแกรมหลังจากกดปุ่ม Win นอกจากนี้เมนูเริ่มและการแจ้งเตือนจะไม่หายไปก่อนที่ฉันจะสามารถใช้งานได้แม้จะมีตัวเลือกการเลื่อนขึ้น - ลงเมื่อคุณสามารถตั้งค่าการหน่วงเวลาเล็กน้อยสำหรับการทำงาน (หนึ่งหรือสองร้อยมิลลิวินาทีจะพอเพียง) มีพื้นที่มากพอที่จะย้ายตัวชี้ไปยังหน้าต่างใหม่

ฉันใช้มันมาระยะหนึ่งแล้วและฉันก็ค่อนข้างมีความสุขกับมันรวมถึงตัวจัดการหน้าต่างเรียงต่อกันของbug.n การตั้งค่านี้ใกล้เคียงกับที่ฉันเคยใช้ dwm บนยูนิกซ์


24

สคริปต์ powershell ต่อไปนี้ควรมีผลเช่นเดียวกับโปรแกรม XMouse ... โดยไม่ต้องดำเนินการไบนารีบุคคลที่สาม

รหัส:

$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)

ค่าคงที่ดึงมาจากที่นี่


มันใช้งานได้ดีกว่าสิ่งอื่นใดที่ฉันได้ลอง เพียงบันทึกสิ่งนี้ในไฟล์. ps1 คลิกขวาแล้วเลือก Run with Powershell คุณสามารถเพิ่มลงใน Task Scheduler เพื่อเริ่มต้นตอนบูท
Zurd

11

การแก้ไขรีจิสตรีที่กล่าวถึงในลิงค์ของคำถามใช้งานได้บน Windows 10 อย่างไรก็ตามดูเหมือนว่าจะต้องทำเมื่อมีการเลือกตัวเลือก“ เปิดใช้งานหน้าต่างด้วยการวางเมาส์เหนือเมาส์” ในการตั้งค่าการเข้าถึง ตัวเลือกนี้สามารถพบได้ใน แผงควบคุม> สะดวกในการเข้าถึง> เปลี่ยนวิธีเมาส์และคุณกิจ

หากคุณกำลังประสบปัญหาเดียวกันและช่องจะเลือกไม่เลือกให้คลิกใช้เลือกมันอีกครั้งและทำซ้ำดัดแปลง เมาส์ควรทำงานอย่างถูกต้องในครั้งต่อไปที่คุณเข้าสู่ระบบ


3
อย่างไรก็ตามนั่นคือสิ่งที่ชื่อแนะนำ - ยกหน้าต่างขึ้นโดยอัตโนมัติ OP ต้องการให้ไม่เพิ่ม แต่ยังคงให้ความสำคัญกับหน้าต่างพื้นหลัง การปฏิบัติตามคำแนะนำของ Winaero ของ Q (การตั้งรหัสฐานสิบหกแรกเป็น 9F) และการเข้าและออกดูเหมือนว่าจะทำงานไม่เป็นไร ปุ่ม Win + การพิมพ์ = เหมาะสำหรับการค้นหา ปุ่ม Win พร้อมเมาส์ + พิมพ์ = ไม่ทำงานสำหรับการค้นหาถ้าโฟกัสอยู่ห่างจากปุ่มดังกล่าว แต่จะทำอย่างไรหากฉันใช้เมาส์ค้างไว้เหนือปุ่ม การฆ่า explorer.exe และการเรียกใช้ userinit.exe ไม่สามารถโหลดการตั้งค่า reg ได้ดังนั้นจึงจำเป็นต้องออกจากระบบ
mpag

การใช้การแก้ไขรีจิสทรีจะหยุดการเพิ่มอัตโนมัติ
aleixosk

6

Windows มีการตั้งค่าสถานะเพื่อเปิดใช้งานการโฟกัสตามเมาส์ ("การติดตามหน้าต่างที่ใช้งานอยู่") ซึ่งสามารถเปิดใช้งานได้อย่างง่ายดายผ่านการเรียก Win32 API "SystemParametersInfo" อันยิ่งใหญ่ มีโปรแกรมบุคคลที่สามเพื่อเปิดใช้งานการตั้งค่าสถานะเช่นการควบคุม X-Mouseหรือคุณสามารถทำการโทรโดยตรงโดยใช้ PowerShell

เอกสารไม่ชัดเจนในการใช้pvParamอาร์กิวเมนต์เป็นพิเศษเสมอและบางตัวอย่าง PowerShell ส่งผ่านตัวชี้ไปยังค่าอย่างไม่ถูกต้องแทนที่จะเป็นค่าตัวเองเมื่อตั้งค่าสถานะเฉพาะนี้ สิ่งนี้สิ้นสุดลงเมื่อถูกตีความว่าเป็นtrueเช่นนั้นพวกเขาทำงานโดยไม่ได้ตั้งใจสำหรับการเปิดใช้งานธง แต่ไม่ได้สำหรับการปิดการใช้งานอีกครั้ง

ด้านล่างเป็นตัวอย่างข้อมูล PowerShell ที่ดำเนินการโทรอย่างถูกต้อง นอกจากนี้ยังรวมถึงการตรวจสอบข้อผิดพลาดที่เหมาะสมและฉันพยายามทำความสะอาดมากกว่าความกะทัดรัดเพื่อให้ง่ายต่อการเพิ่ม wrappers สำหรับฟังก์ชั่นอื่น ๆ ของSystemParametersInfoคุณควรหาสิ่งที่คุณสนใจ

ตะโกนออกมาที่pinvoke.netเนื่องจากเป็นแหล่งข้อมูลที่เป็นประโยชน์สำหรับสิ่งนี้

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
สวัสดียินดีต้อนรับสู่ superuser กรุณาเมื่อคุณมีส่วนร่วมใหม่พยายามที่จะให้คำอธิบายที่แนบมากับรหัสของคุณ แม้ว่าคำตอบของคุณจะดูถูกต้อง แต่ก็จะดีกว่าถ้าคุณอธิบายว่าทำไมมันถึงได้ผลดังนั้นถ้ามีคนต้องการทำอะไรที่แตกต่างออกไปเล็กน้อย อย่างไรก็ตามขอขอบคุณสำหรับการแบ่งปันความรู้ของคุณกับเรา!
DGoiko

ที่นั่นฉันได้อธิบาย
Matthijs

1
ที่ดี! ฉันดีใจที่ได้เป็นหนึ่งในการโหวตครั้งแรกของคุณหวังว่าจะมีอีกมากที่จะมา: D
DGoiko

1

สำหรับผู้ที่ไม่สามารถใช้งานได้โดยเพียงแค่ลบ 40 จากไบต์แรกของ UserPreferencesMask เพียงรับโปรแกรมอรรถประโยชน์ WinAero Tweaker ที่http://winaero.com/download.php?view.1796

โปรดทราบว่าปัญหา # 1 ด้านบนยังคงมีอยู่ แต่สามารถแก้ไขได้อย่างง่ายดายเพียงแค่ใช้ไอคอนแว่นขยาย (ค้นหา) ทางด้านขวาของเมนูเริ่ม (ปุ่มทางลัดหน้าต่าง + S) ราคาขนาดเล็กสำหรับการใช้งานฟังก์ชั่น X-Mouse

ฉันไม่พบปัญหา # 2 เมื่อฉันใช้ WinAero Tweaker


1

โดยใช้วิธีการเพื่อให้บรรลุพฤติกรรมเมาส์เลอะเทอะที่ฉันคุ้นเคยเพื่อที่จะจากรุ่นก่อนหน้าของ Windows และ Linux จากการโพสต์ ฉันไม่พบปัญหา # 2 ที่คุณมี ปัญหา # 1 ที่คุณและทุกคนจะมีเมื่อใช้การปรับเปลี่ยนรีจิสทรีนี้ไม่ใช่ปัญหา มันเป็นไปตามที่คาดไว้เพราะคุณได้เปลี่ยนวิธีการจัดการโฟกัสในหน้าต่างด้วยการปรับเปลี่ยนนี้ การใช้ปุ่ม windows จะทำให้เมาส์เข้าสู่เมนูเริ่มไม่ใช่เมนูค้นหาเพื่อให้ได้รับโฟกัสไม่ใช่เมนูค้นหา ดังนั้นหากคุณต้องการใช้การค้นหาให้คลิกที่แถบการค้นหาหรือไอคอนการขยาย (ขึ้นอยู่กับการตั้งค่าของคุณสำหรับลักษณะที่ปรากฏ) หรือใช้ปุ่มWin+ Sคำสั่งผสมและมันจะทำสิ่งที่ถูกต้อง


0

ฉันยังไม่ได้ทดสอบ Winaero เพราะ:

  1. ฉันไม่กระตือรือร้นที่จะใช้งานซอฟต์แวร์ที่ไม่รู้จักจากอินเทอร์เน็ต
  2. เนื่องจากฉันได้อัพเกรดพีซีทุกเครื่องที่ฉันใช้จาก Windows 7 เป็น Windows 10 การตั้งค่า Windows 7 "เปิดใช้งานหน้าต่างด้วยการวางเมาส์เหนือเมาส์" การตั้งค่ายังคงมีผลบังคับใช้ใน Windows 10 แม้ว่าดูเหมือนจะไม่มีวิธี การตั้งค่านี้ใน Windows 10 GUI

ฉันยังไม่พบวิธีแก้ปัญหาเหล่านี้ที่ใดก็ได้บนอินเทอร์เน็ตดังนั้นฉันจะทำเอกสารให้คนอื่นดู

การใช้วิธีแก้ไขปัญหาต่อไปนี้ทำให้การใช้ Windows 10 ในโหมด Xmouse เป็นประโยชน์:

  1. สลับเป็นหน้าต่างอื่นเมื่อมีหลายหน้าต่างพร้อมใช้งานผ่านไอคอนแอพในทาสก์บาร์:

    อย่าคลิกไอคอนแอปในทาสก์บาร์ก่อนที่จะลองเลือกหน้าต่าง หากคุณทำเช่นนั้นทันทีที่คุณเลื่อนตัวชี้เมาส์เหนือแถบงานหน้าต่างจะหายไป เพียงวางเมาส์เหนือไอคอนแอพจนกระทั่งหน้าต่างปรากฏขึ้นจากนั้นคุณสามารถเลื่อนตัวชี้ไปยังหน้าต่างที่คุณต้องการ

  2. สลับเป็นเดสก์ท็อปเสมือนหรือแอปอื่นโดยใช้ปุ่มมุมมองงาน:

    • คลิกที่ปุ่มมุมมองงาน
    • คลิกอีกครั้งและกดปุ่มค้างไว้
    • ย้ายตัวชี้ไปยังงานที่ต้องการหรือเดสก์ท็อปเสมือน
    • ปล่อยปุ่มเมาส์จากนั้นคลิกอีกครั้ง

หมายเหตุ: การตั้งค่า "เลื่อนหน้าต่างที่ไม่ได้ใช้งานของ Windows 10 เมื่อฉันเลื่อนเมาส์ไปวางเหนือหน้าต่าง" เป็นการเพิ่มที่มีประโยชน์ (ดูเริ่ม -> การตั้งค่า -> อุปกรณ์ -> เมาส์และทัชแพด ) ดูเหมือนว่าจะเป็นอิสระจากฟังก์ชั่น Xmouse และ ON น่าจะเป็นค่าเริ่มต้น


0

ตั้งค่า Regkey HKCU \ Control Panel \ Desktop \ ActiveWndTrackTimeout เป็นสิ่งที่สูงกว่า 0 ถึงความล่าช้าในการติดตั้งเว้นแต่หน้าต่างอื่นจะเปิดใช้งาน


1
แก้ไขรหัสของคุณ มันไม่ใช่ Trk ที่ติดตาม เช่น ActiveWndTrkTimeout ฉันไม่รู้ว่าแทร็กหนึ่งทำอะไร แต่การเปลี่ยนแทร็คหนึ่งเป็นสิ่งที่ดีสำหรับฉัน
lumpynose

-2

เพื่อแก้ปัญหา # 2 บน Windows 10

2) เมื่อคุณเปิด Start, Search หรือ Notifications โดยคลิกที่พวกเขาพวกเขาปิดก่อนที่คุณจะสามารถโต้ตอบกับพวกเขา

สิ่งที่คุณต้องทำคือ:

  • กดWindows+X
  • แผงควบคุม
  • ความง่ายในการเข้าถึง
  • เปลี่ยนวิธีการทำงานของเมาส์
  • เปิดใช้งานช่องทำเครื่องหมาย: ป้องกันไม่ให้หน้าต่างถูกจัดเรียงโดยอัตโนมัติเมื่อย้ายไปที่ขอบของหน้าจอ

ไม่จำเป็นต้องมีซอฟต์แวร์ของ บริษัท อื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.