如何使用C#最小化IE浏览器?

时间:2012-09-18 08:42:58

标签: c# internet-explorer c#-4.0 window minimize

如何使用C#最小化IE浏览器?我尝试了下面提到的代码,但是没有用:

var processes = Process.GetProcessesByName("*iexplorer.*");

if (processes.Any()) 
{

    var handle = processes.First().MainWindowHandle;
    ShowWindow(handle, SW_SHOWMINIMIZED); 

}

是否有其他方法可以实现IE浏览器的最小化?

1 个答案:

答案 0 :(得分:3)

正如Damien所说,由于用户拥有浏览器而不是你的应用程序,因此没有完全可行的方法。您的代码无效,因为您尝试使用通配符符号(*),就像在Google上一样,但这不起作用。 GetProcessesByName确实在寻找名为*iexplorer.*的流程。您可以通过在此行下方放置断点并将鼠标悬停在processList上来确认这一点,它是一个空数组。将此更改为iexplore可解决此问题。

一些经过测试和运行的代码如下:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main()
        {
            var processes = Process.GetProcessesByName("iexplore");

            foreach (var process in processes)
            {
                ShowWindow(process.MainWindowHandle, 2);
            }
        }
    }
}