我複製從一些網站上的這個PowerShell代碼,即顯示鼠標的當前位置:爲什麼可以讀取System.Windows.Forms.Control MousePosition屬性,但是位置不是?
[Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$control = [System.Windows.Forms.Control]
$mouseX = $control::MousePosition.X
$mouseY = $control::MousePosition.Y
Write-Host 'MousePosition:' $mouseX $mouseY
我回顧了System.Windows.Forms.Control class documentation,發現了幾個屬性,是MousePosition的「姐妹」(如底部,邊界,左,位置,右或頂部),包含關於像素「控制」措施,所以我試圖同時報告Location property值是這樣的:
[Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$control = [System.Windows.Forms.Control]
$mouseX = $control::MousePosition.X
$mouseY = $control::MousePosition.Y
Write-Host 'MousePosition:' $mouseX $mouseY
$locationX = $control::Location.X
$locationY = $control::Location.Y
Write-Host 'Location:' $locationX $locationY
但是這個代碼不工作:沒有錯誤報告,但不顯示位置值:
MousePosition: 368 431
Location:
爲什麼MousePosition屬性可以正確訪問,但位置不是?
此代碼的目的是獲取運行PowerShell腳本的cmd.exe窗口的像素尺寸和位置。在PowerShell中獲取這些值的正確方法是什麼?
'MousePosition'是靜態的,'Location'不是(因爲它是每個控件的實例)。你必須從窗口句柄實例化一個'Control'對象,如果你想要它的位置 –