Иногда возникает необходимость отобразить пользовательский интерфейс и скрыть консоль. Следующий код решает вопрос используя механизм вызова неуправляемого кода для вызова функций библиотеки User32.dll, включенной в стандартную установку любой современной операционной системы Windows.
Для теста копируем код в PowerShell ISE и выполняем.
После закрытия окна формы окно PowerShell ISE снова отображается и возвращает нам результат работы скрипта.
$sw_sig = @' [DllImport("User32.dll")] public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow); '@ $sw = Add-Type -MemberDefinition $sw_sig -Name "Win32ShowWindow" -Namespace Win32Functions -PassThru $hWnd = (Get-Process -Id $pid).MainWindowHandle $sw::ShowWindow($hWnd, 0) Add-Type -AssemblyName System.Windows.Forms $Form = New-Object System.Windows.Forms.Form $Form.ShowInTaskbar = $false $Form.ShowDialog() $sw::ShowWindow($hWnd, 1)
Для теста копируем код в PowerShell ISE и выполняем.
После закрытия окна формы окно PowerShell ISE снова отображается и возвращает нам результат работы скрипта.
Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации