启动 VLC 最大化

Start VLC maximized

我有这个:

                    Process process = new Process();
                    string VLCPath = ConfigurationManager.AppSettings["VLCPath"];
                    process.StartInfo.FileName = VLCPath;
                    process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
                    process.Start();

但它不会启动 vlc 最大化,我做错了什么? 它一直以我上次关闭它的状态启动vlc..

您可以启动一个进程并礼貌地要求它 运行 最大化,但这并不意味着该进程必须听从您的请求。毕竟是第三方进程。如果他们的代码中有一些逻辑在关闭时存储最后的 window 状态并在打开时重新加载它,那么你就不走运了。

您可以将 Window 状态设置为与 Microsoft 一起最大化 ShowWindow function

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading.Tasks;

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_MAXIMIZE = 3;

var process = new Process();
process.StartInfo.FileName = ConfigurationManager.AppSettings["VLCPath"];
process.Start();
process.WaitForInputIdle();

int count = 0;
while (process.MainWindowHandle == IntPtr.Zero && count < 1000)
{
    count++;
    Task.Delay(10);
}

if  (process.MainWindowHandle != IntPtr.Zero)
{ 
    ShowWindow(process.MainWindowHandle, SW_MAXIMIZE);
}

您将需要 while 循环,因为 WaitForInputIdle() 只等待进程启动。所以很有可能MainWindowHandle还没有设置。