iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Переключение на наушники, запуск игры, при выходе, переключение на динамики. Код: [string] $NirCmd = "$env:LOCALAPPDATA\Programs\nirsoft\nircmd.exe" # Путь к утилите nircmd.exe" [string] $FullName = "$PSScriptRoot\xrEngine.exe" # Запускаемый файл [string] $HeadphonesOut = "Headphones" # Название выхода на наушники в моей системе [string] $SpeakersOut = "Динамики" # Название выхода на динамики в моей системе [IO.FileInfo] $File = Get-Item $FullName -ErrorAction Stop # Получить объект FileInfo для получения (ниже) его свойств [string] $FileName = $File.Name # Имя файла, нашего запускаемого файла [string] $FileBaseName = $File.BaseName # Базовое имя файла (без расширения), нашего запускаемого файла [string] $WorkDir = $File.DirectoryName # Рабочая директория, нашего запускаемого файла Push-Location # Сохранить текущую директорию в памяти & $NirCmd "setdefaultsounddevice" "$HeadphonesOut" # Переключить аудио выход на наушники Set-Location $WorkDir # Перейти в рабочую директорию & .\$FileName # Запуск программы while (Get-Process $FileBaseName) { # цикл, проверка есть ли в списке процессов наш запускаемый файл Start-Sleep -Seconds 2 # спим 2 секунды } & $NirCmd "setdefaultsounddevice" "$SpeakersOut" # Переключить аудио выход на динамики Pop-Location # переходим, в ранее сохраненную в памяти, директорию exit # завершаем скрипт | Не нравится мне: while (Get-Process $FileBaseName) — Есть другие варианты, знать, что процеес закрылся/завис/молча схлопнулся/штатно вышли/…? |