我正在尝试在特定地址启动Chrome,但我希望它在启动时最小化。但是,使用我正在使用的代码,程序正常启动。如何在C#中将Chrome启动最小化?
ProcessStartInfo w = new ProcessStartInfo("chrome.exe", "http://pandora.com --new-window");
w.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(w);
这真的很奇怪,因为我发现它可以在大约10%的时间内工作,但我无法弄清楚它何时起作用,何时不起作用。有没有人可以看到我在我的代码中做错了?
答案 0 :(得分:0)
尝试做类似的事情(不是Chrome)我意识到两件可能相关的事情。
首先,一些应用程序似乎忽略了ProcessStartInfo中的属性。要检查是否是这种情况,一个简单的测试是转到应用程序桌面快捷方式,并在属性窗口中将大小更改为最小化(属性称为“运行”)。如果应用程序无论如何全屏运行,它似乎也会忽略ProcessStartInfo中的最小化属性。
为了解决这个问题,我做了以下几点:
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
一旦过程开始:
ShowWindow(aProcess.MainWindowHandle, 6);
其中6是使进程窗口最小化的值。
它可以工作,但由于我的应用程序需要几秒钟才能开始,所以我必须在应用程序启动和最小化之间添加一个线程睡眠。