2

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

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

if (processes.Any()) 
{

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

}

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

4

1 回答 1

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);
            }
        }
    }
}
于 2012-09-18T11:57:25.833 回答