谷歌浏览器 - 在 C# 中最小化启动程序

本文关键字:最小化 启动 程序 谷歌浏览器 | 更新日期: 2023-09-27 17:56:23

我正在尝试在特定地址启动Chrome,但我希望它在启动时被最小化。但是,使用我使用的代码,程序可以正常启动。如何在 C# 中最小化 Chrome 启动?

ProcessStartInfo w = new ProcessStartInfo("chrome.exe", "http://pandora.com --new-window");
w.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(w);

这真的很奇怪,因为我发现它大约 10% 的时间有效,但我无法弄清楚它何时有效,何时无效。有没有人可以看到我在代码中做错了什么?

谷歌浏览器 - 在 C# 中最小化启动程序

尝试做类似的事情(不是用Chrome),我意识到两件事可能相关。

首先,一些应用程序似乎忽略了ProcessStartInfo中的属性。要检查是否是这种情况,一个简单的测试是转到应用程序桌面快捷方式,然后在属性窗口中将大小更改为最小化(称为"run"的属性)。如果应用程序无论如何都全屏运行,它似乎也会忽略ProcessStartInfo中的最小化属性。

为了绕过它,我做了以下工作:

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

一旦该过程开始:

ShowWindow(aProcess.MainWindowHandle, 6);

其中 6 是最小化进程窗口的值。

它可以工作,但由于我的应用程序需要几秒钟才能启动,我不得不在应用程序启动和最小化之间添加一个线程睡眠。