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