Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# カーソルの移動範囲をディスプレイ2に制限
$all_screens = [System.Windows.Forms.Screen]::AllScreens
$display2_workingarea = $all_screens.Where({$_.DeviceName.Contains('DISPLAY2')}).WorkingArea
[System.Windows.Forms.Cursor]::Clip = $display2_workingarea
Sleep 10
# カーソルの移動制限を解除
[System.Windows.Forms.Cursor]::Clip = [System.Drawing.Rectangle]::Empty;
$all_screens = [System.Windows.Forms.Screen]::AllScreens
で、システム上のすべてのディスプレイの配列を取得します。次に、$all_screens.Where({$_.DeviceName.Contains('DISPLAY2')})
で 'DISPLAY2'
を名前に含む Screen
クラスを取得します。Screen
クラスはディスプレイの作業領域を表す WorkingArea
プロパティを持っています。ここで、マウスカーソルの移動範囲を制限するために Cursor
クラスの Clip
プロパティを使用します。Screen.WorkingArea
, Cursor.Clip
プロパティともに値は Rectangle
であるため、[System.Windows.Forms.Cursor]::Clip = $display2_workingarea
とすることでカーソルの移動範囲を制限することが出来ます。Rectangle
である Rectangle.Empty
を設定します。