Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#最小化IE浏览器?_C#_Internet Explorer_C# 4.0_Window_Minimize - Fatal编程技术网

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

如何使用C#最小化IE浏览器?,c#,internet-explorer,c#-4.0,window,minimize,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浏览器的最小化?正如Damien所说,

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

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

if (processes.Any()) 
{

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

}

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

正如Damien所说,没有完全可靠的方法可以做到这一点,因为用户拥有浏览器,而不是你的应用程序。您的代码不起作用,因为您试图像在Google上一样使用通配符(*),但这在这里不起作用
GetProcessByName
实际上是在寻找一个名为
*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);
            }
        }
    }
}

为什么?浏览器属于用户,而不是您的应用。有关更通用的解决方案,请参阅