gpt4 book ai didi

powershell - 如何使用 Powershell 启动基于控制台的进程并应用自定义标题

转载 作者:行者123 更新时间:2023-12-03 08:07:53 24 4
gpt4 key购买 nike

我正在转换旧的 cmd命令到 Powershell,目前使用:

START "My Title" Path/To/ConsoleApp.exe

这按预期工作,以我的标题作为窗口标题启动 ConsoleApp。这已被替换为正常工作的 Start-Process,但不提供更改标题的机制。

有没有另一种方法可以做到这一点而不诉诸使用 cmd命令?

最佳答案

更改进程主窗口的文本时有一个小怪癖:如果您在启动进程后尝试直接更改文本,它可能会由于许多可能的原因之一而失败(例如显示的控件的句柄)该文本在函数调用时不存在)。所以解决方案是使用WaitForInputIdle()尝试更改文本之前的方法:

Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;

public static class Win32Api
{
[DllImport("User32.dll", EntryPoint = "SetWindowText")]
public static extern int SetWindowText(IntPtr hWnd, string text);
}
"@

$process = Start-Process -FilePath "notepad.exe" -PassThru
$process.WaitForInputIdle()
[Win32Api]::SetWindowText($process.MainWindowHandle, "My Custom Text")

请注意,在您进行自己的更改后,应用程序本身仍然可以更改窗口文本。

关于powershell - 如何使用 Powershell 启动基于控制台的进程并应用自定义标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com