Czy istnieje skrót Win7 do pozycjonowania myszy na środku głównego ekranu?

25

Mam trzy monitory skonfigurowane w systemie Windows 7 i czasami tracę orientację, gdzie jest mój kursor. Czy istnieje skrót do systemu Windows, aby zresetować pozycję myszy? Zgaduję, że nie ma, ale czy może istnieć sposób na skonfigurowanie prostego makra, który mógłbym powiązać z kombinacją klawiszy, aby ustawić kursor w domyślnej lokalizacji, takiej jak środek głównego ekranu?

tehDorf
źródło
6
Mógłbym napisać ci program, który robi to po kliknięciu - ale musisz znaleźć kursor myszy i przesunąć go na ikonę programu, aby kliknąć. :-(
Dave Becker
1
@DaveBecker, co powiesz na program, który wykonuje go po uruchomieniu? Następnie możesz uruchomić go za pomocą klawisza skrótu.
Hand-E-Food
1
Osobiście uważam, że każdy powinien włączyć kursor pozycji do domyślnego przycisku. Każdy zawsze najpierw szuka okna programu , a potem myśli o przeniesieniu kursora do takiego okna . Uważam również, że każdy powinien zmienić schemat kursora na bardzo duży czarny kursor, ponieważ jest plaga białych / jasnych kolorów tła.
surfasb

Odpowiedzi:

27

Łącząc kilka powyższych pomysłów, wymyśliłem ten skrypt. Jest przetestowany i działa.

CentreCursor.ps1

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | out-null
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
$bounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$center = $bounds.Location
$center.X += $bounds.Width / 2
$center.Y += $bounds.Height / 2
[System.Windows.Forms.Cursor]::Position = $center

Zapisz ten skrypt w wygodnym folderze i utwórz skrót w menu Wszystkie programy:

Cel: % systemroot% \ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned -File "C: \ Path To Script \ CentreCursor.ps1"

Klawisz skrótu: Ctrl + Alt + Shift + C

Uruchom: zminimalizowane

Teraz, gdy naciśniesz Ctrl+ Alt+ Shift+ C, kursor wróci do domu.

Edycja: Chociaż nie wydaje się to być wymogiem na moim komputerze, dodałem sugestię Patricka do skrótu.

Hand-E-Food
źródło
3
Skrypty PowerShell wymagają zmiany zasad wykonywania, jeśli jeszcze tego nie zrobiłeś. Trzeba by to zmienić na stałe lub uruchomić PowerShell.exe z argumentem „-ExecutionPolicy RemoteSigned”.
Patrick Seymour
@ Hand-E-Food Musisz zmienić zasady wykonywania na swoim komputerze lub coś innego, ponieważ nie byłem w stanie uzyskać twojej odpowiedzi na działanie tak, jak napisano. Musiałem zmienić cel na % systemroot% \ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned „C: \ PathToScript \ CentreCursor.ps1”, aby go uruchomić. Ponownie zamówiłem argumenty, polecenie Patricka musiało przyjść przed aktami. Zaktualizowałem twoją odpowiedź, aby to odzwierciedlić.
tehDorf
O tak. Dziękuję @ Hand-E-Food i wszyscy inni, którzy odpowiedzieli, zostali połączeni w jedno!
tehDorf
Miło, że mogłem pomóc! Nauczyło mnie czegoś nowego. (A „centrum” jest całkowicie akceptowalną pisownią poza USA.) ;-)
Hand-E-Food
Do Twojej wiadomości, Windows 10 nie zaakceptuje ścieżki ze spacjami, a% systemroot% nie jest ustawiony. Musiałem uruchomić polecenie w katalogu z plikiem i uruchomić jako C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned. \ CenterCursor.ps1
simpleuser
13

Włączenie opcji „Pokaż położenie wskaźnika po naciśnięciu klawisza CTRL” jest jedną z opcji. Jest to szczególnie przydatne, jeśli jest obecnie zmienione na niestandardowy wskaźnik myszy przez aplikację, taką jak pędzel, który jest trudniejszy do zobaczenia.

wprowadź opis zdjęcia tutaj

Brian
źródło
2
Pointer Trails jest również bardzo pomocny, czyni znacznie większy cel do zobaczenia, gdy poruszasz myszą.
Scott Chamberlain,
8

Możesz to zrobić dość łatwo za pomocą programu o nazwie UltraMon .

W sekcji opcji jest miejsce na określenie klawiszy skrótu. Możesz zobaczyć zrzut ekranu, na którym ustawiłem skrót klawiszowy dla Crtl + Shift + C

wprowadź opis zdjęcia tutaj

quickcel
źródło
1
Wygląda dobrze, ale 40 USD to trochę więcej, jeśli to wszystko, co użytkownik chce zrobić.
Brian
To nie jest ZA DARMO, możesz też udostępniać DARMOWE narzędzia.
YumYumYum
+1 W mojej firmie Ultramon jest domyślnie zainstalowany na każdym komputerze, każdy już wielu moich współpracowników jest ci za to winien (dostarczone przeze mnie) :)
Pavel
7

Następująca sekwencja poleceń AutoHotkey natychmiast przeniesie mysz na środek głównego ekranu:

CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0

Na przykład skompiluj następujący skrypt:

CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
ExitApp

Następnie możesz utworzyć do niego skrót ( .lnk) za pomocą wybranego klawisza skrótu . :)

iglvzx
źródło
3

Oto skrypt AutoIt, aby to zrobić. AutoIt może skompilować swoje skrypty do .exe, które następnie można przypisać skrótowi.

Dim Const $SPI_GETWORKAREA = 0x0030

$rect = DllStructCreate("long left;long top;long right;long bottom")

DllCall("user32.dll", "BOOL", "SystemParametersInfo", "UINT", $SPI_GETWORKAREA, "UINT", 0, "ptr", DllStructGetPtr($rect), "UINT", 0)

Dim $left = DllStructGetData($rect, 1)
Dim $top = DllStructGetData($rect, 2)
Dim $right = DllStructGetData($rect, 3)
Dim $bottom = DllStructGetData($rect, 4)

MouseMove($left + (($right - $left) / 2), $top + (($bottom - $top) / 2))
Patrick Seymour
źródło
1

Korzystając z WMIC i Powershell (oba powinny być już zainstalowane pod Windows 7), powinno to być wykonalne.

Korzystając z WMIC, możesz uzyskać szerokość i wysokość ekranu:

C:\>wmic desktopmonitor get screenheight, screenwidth
ScreenHeight  ScreenWidth
900           1440

i PowerShell ustawić położenie myszy (zastąpienie <X>i <Y>z rzeczywistych współrzędnych)

PS C:\>[system.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
PS C:\>[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(<X>,<Y>)

Zatem mała próba i błąd (i podstawowa matematyka) powinny dać ci skrypt, który po uruchomieniu wycentruje wskaźnik myszy.

Andrew Lambert
źródło
1
Skrypty PowerShell wymagają zmiany zasad wykonywania, jeśli jeszcze tego nie zrobiłeś. Trzeba by to zmienić na stałe lub uruchomić PowerShell.exe z argumentem „-ExecutionPolicy RemoteSigned”.
Patrick Seymour
0

Kolejny program AutoIt3 :

<!--  --!>
;;; Define variables according to you
$speed  = 1        ; 0=instantly, 1=fastest, 100=slowest
$delay  = 100      ; milliseconds
$hotkey = "^+!c"   ; ^=Ctrl, +=Shift, !=Alt

;;; Hotkey function
Func GetMyMouse()
    MouseMove(@DesktopWidth / 2, @DesktopHeight / 2, $speed)
EndFunc

;;; Register hotkey
HotKeySet($hotkey, "GetMyMouse")

;;; Program body (busy wait)
While True
    Sleep($delay)
WEnd
mmdemirbas
źródło
0

Nircmd by Nir Sofer ma następującą opcję ...

nircmd setcursor xy

Możesz utworzyć skrót do tego wiersza poleceń i przypisać do niego dowolny skrót klawiszowy. Istnieje wiele innych opcji kursora myszy, wyszczególnionych w pliku nircmd.chm.

użytkownik38660
źródło
Jest to dobra metoda, z wyjątkiem tego, że wydaje się być powolna (uruchomienie systemu Windows zajmuje około 3 sekund). Ale nie wymaga wiele więcej. Musiałem użyć skrótu podwyższania, aby zapobiec wyskakującym okienku bezpieczeństwa systemu Windows.
-1

uhh ... nie sądzę

ale w kwestii znalezienia myszy MOŻESZ włączyć „wskaźnik sonaru”, aby wskaźnik został zaostrzony po naciśnięciu klawisza sterującego. (obecnie na komputerze Mac, ale za chwilę spróbuję zrobić zrzuty ekranu i je edytować)

w sprawie pomysłu makro. Wydaje mi się, że to możliwe ... ale nie znam żadnej aplikacji, która ma to już zaprogramowane, ani tego, jak sam ją zaprogramować

mjrider
źródło