4

我必须使用 C# 打开最大化的 Internet Explorer。我尝试了以下方法:

try
{
    var IE = new SHDocVw.InternetExplorer();
    object URL = "http://localhost/client.html";

    IE.ToolBar = 0;
    IE.StatusBar = true;
    IE.MenuBar = true;
    IE.AddressBar = true;
    IE.Width = System.Windows.Forms.SystemInformation.VirtualScreen.Width;
    IE.Height = System.Windows.Forms.SystemInformation.VirtualScreen.Height;

    IE.Visible = true;

    IE.Navigate2(ref URL);
    ieOpened = true;

    break;
}
catch (Exception)
{

}

我可以打开不同的大小,但我找不到如何打开最大化的 IE。我检查了msdn,没有可以最大化的属性。

请给我一些建议。

PS:我正在开发 C# 控制台应用程序、.Net4.5 和 VS2012

4

4 回答 4

7
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace Maximize_IE
{
    class Program
    {
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main(string[] args)
        {
            var IE = new SHDocVw.InternetExplorer();
            object URL = "http://google.com/";

            IE.ToolBar = 0;
            IE.StatusBar = true;
            IE.MenuBar = true;
            IE.AddressBar = true;

            IE.Visible = true;
            ShowWindow((IntPtr)IE.HWND, 3);
            IE.Navigate2(ref URL);
            //ieOpened = true;
        }
    }
}
于 2014-08-13T10:32:56.737 回答
5

我会使用过程方法。

  1. 您可以启动任何可执行文件并
  2. 它有一个属性,可以最大程度地启动您的流程

    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
    startInfo.WindowStyle = ProcessWindowStyle.Maximized;
    startInfo.Arguments = "www.google.com";
    
    Process.Start(startInfo);
    
于 2014-08-13T10:18:30.240 回答
3

“csharp 最大化 SHDocVw 窗口”的快速谷歌给出了这个例子:

[DllImport ("user32.dll")]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
private const int SW_MAXIMISE = 3;

public void OpenWindow()
{
       SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();  //Instantiate the class.
        ShowWindow((IntPtr)ie.HWND, SW_MAXIMISE);   //Maximise the window.
        ie.Visible = true;   //Set the window to visible.
}
于 2014-08-13T10:19:32.460 回答
1

尝试这个:

  var proc = new Process
            {
              StartInfo = {
                 UseShellExecute = true,
                 FileName = "http://localhost/client.html",
                 WindowStyle = ProcessWindowStyle.Maximized
              }
            };
  proc.Start();
于 2014-08-13T10:19:58.593 回答