liaFcipE
@liaFcipE

Возможно ли через PWSH / CMD изменить заголовок запускаемой программы?

Допустим, запустить тот же Notepad.exe и после заменить заголовок окна на "Test321".
Интересен вариант без программирования, чем-то встроенным в винду.
Гуглятся только варианты изменения заголовка консольного окна, но мне кажется PWSH скорее всего может то, о чем я говорю.

В худшем случае я конечно могу взять SetWindowTextW из Winuser.h
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
liaFcipE
@liaFcipE Автор вопроса
Да, выгрузка user32.dll, но через PWSH, меня устраивает.

# Helper functions for building the class
$script:nativeMethods = @();
function Register-NativeMethod([string]$dll, [string]$methodSignature)
{
    $script:nativeMethods += [PSCustomObject]@{ Dll = $dll; Signature = $methodSignature; }
}
function Add-NativeMethods()
{
    $nativeMethodsCode = $script:nativeMethods | % { "
        [DllImport(`"$($_.Dll)`")]
        public static extern $($_.Signature);
    " }

    Add-Type @"
        using System;
        using System.Runtime.InteropServices;
        public static class NativeMethods {
            $nativeMethodsCode
        }
"@
}

Register-NativeMethod "user32.dll" "bool SetWindowText(IntPtr hWnd, string lpString)"
Add-NativeMethods

$myprocess = start-process Notepad -Passthru

# If you change the title immediately nothing will happen because the process isn't done loading.
sleep 1

[NativeMethods]::SetWindowText($myprocess.MainWindowHandle, "something")


соус
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы