在C#中启动程序最小化

时间:2014-04-03 02:22:21

标签: c# google-chrome

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

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

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

1 个答案:

答案 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是使进程窗口最小化的值。

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