簡體   English   中英

通過C#Process.Start()調整PowerShell窗口的大小

[英]Resize PowerShell Window through C# Process.Start()

我通過C#啟動PowerShell和命令。

使用Windows 10。

方法1

Process.Start("powershell.exe",
    "Write-Host \"Hello, world!\"; timeout 30"
    );

方法2

using (Process ps = new Process())
{
    ps.StartInfo.UseShellExecute = false;
    ps.StartInfo.Verb = "runas";
    ps.StartInfo.CreateNoWindow = false;
    ps.StartInfo.RedirectStandardOutput = false;
    ps.StartInfo.FileName = "powershell.exe";
    ps.StartInfo.Arguments = "Write-Host \"Hello, world!\"; timeout 30";

    ps.Start();
    ps.WaitForExit();
    ps.Close();
}

問題

但是,窗口大小比正常啟動PowerShell時大得多。

是否有任何命令或啟動參數可以減小窗口大小?

我希望不強制設置新的寬度和高度,而是將其還原為原始大小,以免影響Windows 7中其他版本的PowerShell。

左:C#Process.Start()。
右:正常 電源外殼

解決方案

我已經嘗試過-nologo -noprofile -command

我也嘗試過使用此窗口調整大小
https://stackoverflow.com/a/6485074/6806643

它可以在控制台應用程序中工作,但無法在WPF中工作。
如果我嘗試手動調整寬度,PowerShell也將退出。

區別在於,開始菜單中的快捷方式具有自己的屬性集。

您可以在注冊表中更改默認設置以匹配快捷方式。 它們在以下位置:

HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe
HKEY_CURRENT_USER\Console\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe

或者,您可以在PowerShell中通過添加如下參數來設置它:

ps.StartInfo.Arguments = "$Host.UI.RawUI.WindowSize = New-Object System.Management.Automation.Host.Size (120, 50); Write-Host \"Hello, world!\"; timeout 30";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM