如何使用C#最小化IE浏览器?我尝试了下面提到的无效代码:

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

if (processes.Any())
{

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

}


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

最佳答案

正如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);
            }
        }
    }
}

10-07 21:22