Apakah ada jalan pintas Win7 ke posisi mouse di tengah layar utama?

25

Saya memiliki tiga monitor yang diatur pada Windows 7 dan kadang-kadang saya kehilangan jejak di mana kursor saya berada. Apakah ada jalan pintas Windows untuk mengatur ulang posisi mouse? Saya menduga tidak ada, tetapi mungkinkah ada cara untuk mengatur makro sederhana saya dapat mengikat kombinasi tombol untuk mengatur kursor saya ke lokasi default, seperti pusat tampilan utama?

tehDorf
sumber
6
Saya bisa menulis Anda sebuah program yang melakukan ini ketika Anda mengklik - tetapi Anda harus menemukan kursor mouse dan memindahkannya ke ikon program untuk mengklik. :-(
Dave Becker
1
@DaveBecker, bagaimana dengan program yang menjalankannya? Kemudian Anda dapat meluncurkannya dengan tombol pintas.
Hand-E-Food
1
Saya pribadi berpikir setiap orang harus menyalakan kursor posisi ke tombol default. Setiap orang selalu mencari jendela program terlebih dahulu , lalu berpikir untuk memindahkan kursor ke sana. Saya juga percaya setiap orang harus mengubah skema kursor mereka ke kursor Hitam Ekstra Besar, karena ada wabah latar belakang berwarna putih / terang.
surfasb

Jawaban:

27

Menggabungkan beberapa ide di atas, saya membuat skrip ini. Ini diuji dan berfungsi.

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

Simpan skrip ini di folder yang nyaman, dan buat pintasan di menu Semua Program Anda:

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

Tombol pintas: Ctrl + Alt + Shift + C

Jalankan: Diminimalkan

Sekarang setiap kali Anda menekan Ctrl+ Alt+ Shift+ C, kursor Anda akan kembali ke rumah.

Sunting: Walaupun sepertinya tidak menjadi persyaratan di komputer saya, saya telah menambahkan saran Patrick ke pintasan.

Makanan Tangan
sumber
3
Skrip PowerShell mengharuskan kebijakan eksekusi diubah, jika Anda belum melakukannya. Anda perlu mengubahnya secara permanen atau menjalankan PowerShell.exe dengan argumen "-ExecutionPolicy RemoteSigned".
Patrick Seymour
@ Hand-E-Food Anda harus mengubah kebijakan eksekusi pada mesin Anda atau sesuatu karena saya tidak dapat mendapatkan jawaban Anda untuk bekerja seperti yang tertulis. Saya harus mengubah target menjadi % systemroot% \ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned "C: \ PathToScript \ CentreCursor.ps1" untuk membuatnya berfungsi. Saya memesan kembali argumen, perintah Patrick harus datang sebelum file. Saya telah memperbarui jawaban Anda untuk mencerminkan ini.
tehDorf
Oh ya. Terima kasih @ Hand-E-Food dan semua orang yang jawabannya digabungkan menjadi yang ini!
tehDorf
Senang untuk membantu! Itu mengajari saya sesuatu yang baru. (Dan "pusat" adalah ejaan yang dapat diterima di luar AS.) ;-)
Hand-E-Food
FYI, Windows 10 tidak akan menerima jalur dengan spasi, dan% systemroot% tidak disetel. Saya harus menjalankan perintah dalam direktori dengan file tersebut, dan menjalankannya sebagai C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned. \ CenterCursor.ps1
simpleuser
13

Menyalakan "Tampilkan lokasi penunjuk saat saya menekan tombol CTRL" adalah salah satu opsi. Ini sangat berguna jika saat ini diubah ke beberapa penunjuk tetikus khusus oleh aplikasi, seperti kuas cat, yang lebih sulit dilihat.

masukkan deskripsi gambar di sini

Brian
sumber
2
Pointer Trails juga sangat membantu, membuat target yang jauh lebih besar untuk dilihat ketika Anda menggoyangkan mouse.
Scott Chamberlain
8

Anda dapat melakukan ini dengan cukup mudah dengan program perangkat lunak yang disebut UltraMon .

Di bagian opsi ada tempat untuk menentukan HotKeys. Anda dapat melihat tangkapan layar tempat saya menyiapkan hot key untuk Crtl + Shift + C

masukkan deskripsi gambar di sini

quickcel
sumber
1
Terlihat bagus tetapi $ 40US sedikit banyak jika ini yang ingin dilakukan pengguna.
Brian
Ini tidak GRATIS, dapatkah Anda berbagi alat GRATIS juga.
YumYumYum
+1 Di perusahaan saya, ada Ultramon yang diinstal pada setiap komputer secara default, setiap rekan kerja saya sudah berutang budi padamu untuk ini (dikirimkan oleh saya) :)
Pavel
7

Urutan perintah AutoHotkey berikut ini akan langsung memindahkan mouse ke tengah tampilan utama:

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

Misalnya, kompilasi skrip berikut:

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

Anda kemudian dapat membuat pintasan ( .lnk) dengan pintasan pilihan Anda. :)

iglvzx
sumber
3

Berikut ini skrip AutoIt untuk melakukannya. AutoIt dapat mengkompilasi skripnya ke .exe, yang kemudian dapat Anda berikan hotkey.

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
sumber
1

Menggunakan WMIC dan Powershell (keduanya harus sudah diinstal pada Windows 7) ini harus bisa dilakukan.

Dengan menggunakan WMIC, Anda bisa mendapatkan lebar dan tinggi layar:

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

dan Powershell dapat mengatur posisi mouse (mengganti <X>dan <Y>dengan koordinat aktual):

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

Jadi, sedikit trial and error (dan matematika dasar) harus memberi Anda skrip yang, ketika dijalankan, memusatkan pointer mouse.

Andrew Lambert
sumber
1
Skrip PowerShell mengharuskan kebijakan eksekusi diubah, jika Anda belum melakukannya. Anda perlu mengubahnya secara permanen atau menjalankan PowerShell.exe dengan argumen "-ExecutionPolicy RemoteSigned".
Patrick Seymour
0

Program AutoIt3 lain :

<!--  --!>
;;; 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
sumber
0

Nircmd oleh Nir Sofer memiliki opsi berikut ..

setup kursor nircmd xy

Anda dapat membuat pintasan ke baris perintah ini dan menetapkan hotkey apa pun untuknya. Ada banyak opsi lain untuk kursor mouse seperti yang dijelaskan dalam file nircmd.chm.

pengguna38660
sumber
Ini adalah metode yang baik kecuali tampaknya lambat (dibutuhkan sekitar 3 detik untuk menjalankan windows). Tetapi tidak membutuhkan banyak hal lain. Saya harus menggunakan pintasan elevate untuk mencegah popup keamanan windows.
-1

uhh ... kurasa tidak

tetapi pada masalah menemukan mouse Anda, Anda BISA mengaktifkan "pointer sonar" sehingga pointer Anda akan diasah ketika Anda menekan tombol kontrol. (saat ini di mac tapi saya akan mencoba dan mendapatkan screenshot di saat ini dan mengeditnya)

tentang ide makro. Saya kira itu masuk akal ... tapi saya tidak tahu ada aplikasi yang sudah diprogram ini, atau bagaimana memprogram ini sendiri

mjrider
sumber