谷歌浏览器 - 在 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% 的时间有效,但我无法弄清楚它何时有效,何时无效。有没有人可以看到我在代码中做错了什么?
尝试做类似的事情(不是用Chrome),我意识到两件事可能相关。
首先,一些应用程序似乎忽略了ProcessStartInfo中的属性。要检查是否是这种情况,一个简单的测试是转到应用程序桌面快捷方式,然后在属性窗口中将大小更改为最小化(称为"run"的属性)。如果应用程序无论如何都全屏运行,它似乎也会忽略ProcessStartInfo中的最小化属性。
为了绕过它,我做了以下工作:
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
一旦该过程开始:
ShowWindow(aProcess.MainWindowHandle, 6);
其中 6 是最小化进程窗口的值。
它可以工作,但由于我的应用程序需要几秒钟才能启动,我不得不在应用程序启动和最小化之间添加一个线程睡眠。