Windows 10에서 포커스가 마우스를 따라 가도록 설정하는 방법


44

몇 년 동안 Windows 및 Linux에서 사용했던 설정이기 때문에 Windows 10에서 클릭시 발생 및 조잡한 초점 추적 마우스를 원합니다.

Windows 10에서 Windows 8에 원래 의도 된이 링크에 언급 된 regedit Xmouse 변경 사항을 시도했습니다 . windows-8-1-windows-8 및 windows-7 /의 포인터 기능

그러나 다음과 같은 문제가 발생했습니다.

  1. Windows 키를 눌러 시작 메뉴를 열면 키보드 입력이 수신되지 않습니다.

  2. 시작, 검색 또는 알림을 클릭하여 열면 상호 작용하기 전에 닫힙니다.

어쨌든 마우스에 따라 사용 가능한 초점을 얻을 수 있습니까?

Win10을 성공적으로 사용하는 사람이 있습니까?


문제 # 1의 해결 방법은 돋보기 (검색)를 대신 클릭하는 것입니다. 바로 가기 키는 Window + S입니다.
andz

1
ActiveWndTrkTimeout을 더 높은 값으로 설정하면 문제 # 2를 피할 수 있습니다. WinAero Xmouse Tuner는 최소 500ms를 사용했지만 WinAero Tweaker에서는 요청이 너무 많아 최소 100ms로 낮아졌습니다. 여전히 100ms 미만으로 낮추는 것은 불가능하지만 그럴만한 이유가있을 수 있습니다.
andz

답변:


33

X- 마우스 컨트롤을 사용하십시오 .Focus Follows Mouse에 가장 근접한 것으로, 약간의 조정 옵션이 있습니다. 설치 또는 재부팅 할 필요가없는 작은 오픈 소스 유틸리티이므로 레지스트리를 직접 변경하지 않아도됩니다.

실험 한 한, Win 키를 누른 후 키보드를 사용하여 파일 / 프로그램을 검색 할 수 있습니다. 또한 시작 및 알림 메뉴는 마우스를 올리면 올리기 옵션으로도 사용하기 전에 사라지지 않습니다. 동작에 대해 약간의 지연을 설정할 수 있기 때문에 (1 ~ 2 백 ms 정도면 충분 함) 포인터를 새 창으로 이동하기에 충분한 공간보다

나는 그것을 잠시 동안 사용했고 그것에 만족하고 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 파일로 저장하고 마우스 오른쪽 버튼으로 클릭 한 다음 Powershell로 실행을 선택하십시오. 작업 스케줄러에 추가하여 부팅시 시작할 수도 있습니다.
Zurd

11

질문 링크에 언급 된 레지스트리 수정은 Windows 10에서 작동합니다. 그러나 "마우스로 마우스를 가져 가서 창을 활성화하여 창 활성화"옵션이 접근성 설정에서 선택된 경우 수정이 필요한 것 같습니다. 이 옵션은 제어판> 손쉬운 사용> 마우스 작동 방식 변경 에서 찾을 수 있습니다 .

동일한 문제가 발생하고 확인란 선택된 경우 선택을 해제하고 적용을 클릭 한 후 다시 선택하고 수정 사항을 다시 실행하십시오. 다음에 로그인 할 때 마우스가 올바르게 작동해야합니다.


3
그러나 이름에서 알 수 있듯이 창을 자동으로 올립니다. OP는 올리지 않고 배경 창에 여전히 초점을 맞 춥니 다. Q의 Winaero 지침 (첫 16 진수 코드를 9F로 설정)을 따르고 로그인 및 로그 아웃하는 것이 정상적으로 작동하는 것 같습니다. Win 키 + 입력 = 검색에 사용됩니다. 마우스 + 타이핑 =가있는 Win 버튼은 포커스가 해당 버튼에서 멀어지면 검색에 작동하지 않지만 마우스를 버튼 위에 올려 놓으면 작동합니다. explorer.exe를 종료하고 userinit.exe를 실행하면 reg 설정을로드 할 수 없으므로 로그 오프가 필요한 것 같습니다.
mpag

레지스트리 수정을 적용하면 자동 올리기가 중지됩니다.
aleixosk

6

Windows에는 포커스 추적 마우스 ( "활성 창 추적")를 활성화하는 플래그가 있습니다.이 플래그는 괴물 "SystemParametersInfo" Win32 API 호출을 통해 쉽게 활성화 할 수 있습니다 . X-Mouse Controls 와 같이 플래그를 사용하도록 설정하는 타사 프로그램이 있거나 PowerShell을 사용하여 직접 호출을 수행 할 수 있습니다.

설명서에서 pvParam인수가 어떻게 사용 되는지 항상 명확하지는 않으며 일부 Powershell 스 니펫 은이 특정 플래그를 설정할 때 값 자체가 아닌 값에 대한 포인터 를 잘못 전달합니다 . 이것은 항상으로 해석됩니다 true. 즉, 실수로 플래그를 활성화하지만 다시 비활성화하지는 않습니다.

다음은 통화를 올바르게 수행하는 파워 쉘 스 니펫입니다. 또한 적절한 오류 검사가 포함되어 있으며, 간결함보다는 청결을 유지하려고 노력하고 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
안녕하세요, 수퍼 유저에게 잘 오셨습니다. 새로운 기부를 할 때 코드에 첨부 된 설명을 해보십시오. 대답은 정확 해 보이지만 왜 작동하는지 설명하면 더 좋을 것이므로 누군가 약간 다른 것을 만들고 싶다면 대답에서 출발점을 얻을 수 있습니다. 어쨌든 지식을 공유해 주셔서 감사합니다!
DGoiko

거기서 설명을 완성했습니다.
Matthijs

1
큰! 나는 당신의 첫 번째
공로

1

UserPreferencesMask의 첫 번째 바이트에서 40을 빼서 작동하지 못하는 사람들은 http://winaero.com/download.php?view.1796 에서 WinAero Tweaker 유틸리티 자체를 얻으십시오 .

위의 1 번 문제는 여전히 존재하지만 시작 메뉴 오른쪽에있는 돋보기 (검색) 아이콘 (바로 가기 키 Window + S)을 사용하면 쉽게 해결할 수 있습니다. X-Mouse 기능을 사용하기위한 적은 비용.

WinAero Tweaker를 사용할 때 2 번 문제가 발생하지 않습니다.


1

이 방법을 사용하여 이전 버전의 Windows와 Linux의 post 에서 익숙한 조잡한 마우스 동작을 달성 했습니다 . 나는 당신이 가지고있는 문제 # 2를 경험하지 않습니다. 이 레지스트리 수정을 사용할 때 귀하와 모두가 가질 수있는 문제 # 1은 문제가되지 않습니다. 이 수정으로 창에서 포커스가 처리되는 방식을 변경했기 때문에 정확히 예상대로 수행됩니다. windows 키를 사용하면 검색 메뉴가 아닌 시작 메뉴로 마우스가 이동하므로 검색 메뉴가 아니라 초점이 설정됩니다. 따라서 검색을 사용하려면 검색 막대 또는 확대 아이콘 (모양에 대한 설정에 따라 다름)을 클릭하거나 Win+ S키 콤보를 사용 하면 올바른 작업이 수행됩니다.


0

아직 Winaero를 테스트하지 않았습니다.

  1. 인터넷에서 알 수없는 소프트웨어를 실행하는 데 열중하지 않습니다.
  2. Windows 7에서 Windows 10으로 사용하는 모든 PC를 업그레이드함에 따라 Windows 7 "마우스로 마우스를 가져 가서 창을 활성화하여 창 활성화"설정이 Windows 10에서도 계속 적용되었습니다. Windows 10 GUI에서이를 설정합니다.

아직 인터넷 어디에서나 이러한 해결 방법을 찾지 못했기 때문에 여기에 다른 사람을 위해 문서화 할 것입니다.

다음 해결 방법을 사용하면 Xmouse 모드에서 Windows 10을 실용적으로 사용할 수 있습니다.

  1. 작업 표시 줄의 앱 아이콘을 통해 여러 개의 창이 사용 가능한 경우 다른 창으로 전환 :

    창을 선택하기 전에 작업 표시 줄에서 앱 아이콘을 클릭하지 마십시오. 그렇게하면 작업 표시 줄 위로 마우스 포인터를 이동하자마자 창이 사라집니다. 창이 나타날 때까지 앱 아이콘 위로 마우스를 가져 가면 포인터를 원하는 위치로 옮길 수 있습니다.

  2. 작업보기 버튼을 사용하여 다른 가상 데스크톱 또는 앱으로 전환 :

    • 작업보기 버튼을 클릭하십시오.
    • 다시 클릭하고 버튼을 누르고 있으십시오.
    • 필요한 작업 또는 가상 데스크톱으로 포인터를 이동하십시오.
    • 마우스 버튼을 놓았다가 다시 클릭하십시오.

참고 : Windows 10 "창 위로 마우스를 가져 가면 비활성 창 스크롤"설정이 유용합니다 ( 시작 -> 설정 -> 장치 -> 마우스 및 터치 패드 참조 ). 이것은 Xmouse 기능과 독립적 인 것으로 보이며 ON이 기본값 인 것 같습니다.


0

다른 창이 활성화되지 않는 한 설정 지연으로 Regkey HKCU \ Control Panel \ Desktop \ ActiveWndTrackTimeout을 0보다 큰 값으로 설정하십시오.


1
키를 수정하십시오. 그것은 트랙이 아닙니다. 예 : ActiveWndTrkTimeout. 나는 트랙 하나가 무엇을하는지 모릅니다. 그러나 Trk 하나를 바꾸는 것이 저에게 효과적입니다.
lumpynose

-2

Windows 10에서 문제 # 2를 해결하려면

2) 시작, 검색 또는 알림을 클릭하여 열면 상호 작용하기 전에 닫힙니다.

당신이해야 할 일은 :

  • Windows+를 누르십시오X
  • 제어판
  • 접근 용이성
  • 마우스 작동 방식 변경
  • 확인란 활성화 : 화면 가장자리로 이동할 때 창이 자동으로 정렬되지 않도록 방지

타사 소프트웨어가 필요하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.