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

ダミアンが言うように、ユーザーはアプリではなくブラウザを所有しているため、これを行う完全な方法はありません。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 に答える