Дождитесь открытия программы и продолжайте - PullRequest
0 голосов
/ 01 мая 2020

Я использую сценарий PowerShell для управления виртуальным рабочим столом, чтобы открывать программы на указанном c виртуальном рабочем столе, но у меня возникла проблема, когда программа загружается слишком долго и загружается не на тот рабочий стол. Есть ли способ заставить его ждать, пока программа полностью загрузится, чтобы продолжить?

Вот два файла, которые я использую: Startup.ps1

. .\VirtualDesktop.ps1
Sleep 1
$Desktop1 = Get-Desktop 0 #Desktop Default
$Desktop2 = Get-Desktop 1 #Desktop To-Do
$Desktop3 = Get-Desktop 2 #Desktop Outlook
$Desktop4 = Get-Desktop 3 #Desktop Music
$Desktop5 = Get-Desktop 4 #Desktop Phone
$OldDesktop = Get-CurrentDesktop


# Open To-Do On To-Do Desktop
$Desktop2 | Switch-Desktop
start shell:AppsFolder\Microsoft.Todos_8wekyb3d8bbwe!App 
Sleep 3
Switch-Desktop $OldDesktop



# Open Outlook on Outlook Desktop
Sleep 1
$Desktop3 | Switch-Desktop
start Outlook
Sleep 5
Switch-Desktop $OldDesktop



# Open Spotify On Music Desktop
Sleep 1
$Desktop4 | Switch-Desktop
start spotify
Sleep 3
Switch-Desktop $OldDesktop



# Open Samsung Dex and Your Phone On Phone Desktop
Sleep 1
$Desktop5 | Switch-Desktop
start SamsungDex
Sleep 5
start shell:AppsFolder\Microsoft.YourPhone_8wekyb3d8bbwe!App
Sleep 3
Switch-Desktop $OldDesktop

Functions.ps1

https://www.powershellgallery.com/packages/VirtualDesktop/1.0.0/Content/VirtualDesktop.ps1

1 Ответ

0 голосов
/ 02 мая 2020

Похоже, не так много хороших вариантов для достижения того, чего вы хотите. Код ниже может работать.

function WaitForProcess([System.Diagnostics.Process] $procHandle) {
    while (
        $null -eq $procHandle.MainWindowTitle `
        -or `
        $null -eq $procHandle.StartTime
    ) {
        Write-Host 'Sleeping'
        Start-Sleep -Milliseconds 500    
    }
}

$proc = Start-Process 'Notepad' -PassThru; 
WaitForProcess -procHandle $proc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...