2015-11-19 3 views
1

Мне нужно закодировать цикл в Powershell, который заставляет позицию мыши до запуска другого скрипта.Как запустить две команды одновременно в Powershell?

#Mouse blocking starts now 
Add-Type -AssemblyName System.Windows.Forms 
$screen = [System.Windows.Forms.SystemInformation]::VirtualScreen 
$screen.Width = 1 
$screen.Height = 1 
do 

{ 
    [Windows.Forms.Cursor]::Position = "$($screen.width),$($screen.height)" 
}while (.\file.ps1) 

Это не работает. Есть ли у вас идеи?

ответ

2

Вы можете использовать PSJob запустить первый сценарий и проверку, является ли работа завершена в состоянии while:

$MyFilePath = Join-Path $PSScriptRoot file.ps1 
$MyJob = Start-Job { & $args[0] } -ArgumentList $MyFilePath 

do 
{ 
    [Windows.Forms.Cursor]::Position = "$($screen.width),$($screen.height)" 
    # Maybe wait a little 
    Start-Sleep -MilliSeconds 200 
} while ($MyJob.State -eq "Running") 
+0

Это не похоже на работу. Он не запускает file.ps1. – ppiotrek

+0

@ppiotrek вы пробовали указать полный путь к скрипту? то есть. 'C: \ path \ to \ file.ps1' –

+0

Да, у меня есть, но он открывает задание в виде текстового файла в Блокноте. Это происходит независимо от полного пути. Как мы можем заставить его работать как приложение в PS? – ppiotrek