Windows 7に3台のモニターをセットアップしていますが、カーソルがどこにあるかわからなくなることがあります。マウスの位置をリセットするWindowsショートカットはありますか?私はそうではないと推測していますが、キーの組み合わせにバインドして、プライマリディスプレイの中央などのデフォルトの場所にカーソルを設定できる簡単なマクロを設定する方法があるのでしょうか?
Windows 7に3台のモニターをセットアップしていますが、カーソルがどこにあるかわからなくなることがあります。マウスの位置をリセットするWindowsショートカットはありますか?私はそうではないと推測していますが、キーの組み合わせにバインドして、プライマリディスプレイの中央などのデフォルトの場所にカーソルを設定できる簡単なマクロを設定する方法があるのでしょうか?
回答:
上記のアイデアをいくつか組み合わせて、このスクリプトを思いつきました。テスト済みで動作しています。
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
このスクリプトを便利なフォルダーに保存し、[すべてのプログラム]メニューにショートカットを作成します。
ターゲット:%systemroot%\ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned -File "C:\ Path To Script \ CentreCursor.ps1"
ショートカットキー: Ctrl + Alt + Shift + C
実行:最小化
これで、Ctrl+ Alt+ Shift+ を押すたびCに、カーソルがホームに戻ります。
編集: それは私のコンピュータの要件ではないようですが、私はショートカットにパトリックの提案を追加しました。
「CTRLキーを押したときにポインターの位置を表示する」をオンにすることは1つのオプションです。これは、ペイントブラシのような、見づらいアプリケーションによって現在カスタムマウスポインターに変更されている場合に特に便利です。
UltraMonと呼ばれるソフトウェアプログラムを使用すると、これをかなり簡単に行うことができます。
オプションセクションには、ホットキーを指定する場所があります。Crtl + Shift + Cのホットキーを設定したスクリーンショットを見ることができます
次のAutoHotkeyコマンドシーケンスは、マウスをプライマリディスプレイの中央に即座に移動します。
CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
たとえば、次のスクリプトをコンパイルします。
CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
ExitApp
次に、選択.lnk
したショートカットキーを使用して、ショートカット()を作成できます。:)
これを行うAutoItスクリプトを次に示します。AutoItは、スクリプトを.exeにコンパイルできます。その後、ホットキーを割り当てることができます。
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))
WMICとPowershell(どちらもWindows 7で既にインストールされている必要があります)を使用すると、これが実行可能になります。
WMICを使用すると、画面の幅と高さを取得できます。
C:\>wmic desktopmonitor get screenheight, screenwidth
ScreenHeight ScreenWidth
900 1440
そして、PowerShellは、マウスの位置を(置換設定することができる<X>
と<Y>
実際の座標):
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>)
そのため、少しの試行錯誤(および基本的な数学)を実行すると、マウスポインターを中央に配置するスクリプトを作成する必要があります。
別の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