我正在尝试使用Start-Job
移动鼠标,尽管工作本身已经完成,但是它不起作用。有没有办法将鼠标作为工作的一部分进行移动,或者这是不可能的?无法在线找到答案。
function moveMouseJob
{
[Windows.Forms.Cursor]::Position = "$($[Windows.Forms.Cursor]::Position.X + 100),$($[Windows.Forms.Cursor]::Position.Y)"
}
Clear-Host
Start-Job $function:moveMouseJob
答案 0 :(得分:1)
您的代码中有错别字-表单中缺少“ s”。它应显示为:
[Windows.Forms.Cursor]::Position = $mousePosition
在this advice之后,我可以使用以下代码将鼠标光标向右移动100个像素,该代码将“ 1024,768”之类的字符串转换为System.Drawing.Point:
[windows.forms.Cursor]::Position = "$([windows.forms.Cursor]::Position.X + 100),$([windows.forms.Cursor]::Position.Y)"
编辑:在工作中需要Windows.Forms引用是正确的,因为这是一个新的运行空间,因此很有意义。一旦添加光标,光标就会移动。 Receive-Job行不是必需的,但对于您的目的可能很有用。
$job = start-job {
[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
[windows.forms.Cursor]::Position = "$([windows.forms.Cursor]::Position.X + 100),$([windows.forms.Cursor]::Position.Y)"
}
Receive-Job -Job $job