C# での FindWindow と FindWindowEx の使用方法
C# の FindWindow と FindWindowEx はウィンドウのハンドルを探す関数です。ここではそれぞれの使い方を紹介します。
- FindWindow 関数
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
IntPtr hWnd = FindWindow(null, "窗口标题");
- lpClassNameパラメータはウィンドウのクラス名を指定します。NULLの場合、パラメータは無視されます。
- lpWindowNameパラメーターはウィンドウのタイトルを指定します。nullの場合、このパラメーターは無視されます。
- FindWindowEx 関数
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);
IntPtr hWndChild = FindWindowEx(hWndParent, IntPtr.Zero, null, "子窗口标题");
- hWndParentパラメータは、親ウィンドウのハンドルを指定し、IntPtr.Zeroの場合は、すべての最上位ウィンドウから検索されます。
- hWndChildAfterパラメータには、子ウィンドウのハンドルを指定します。IntPtr.Zeroの場合は、一番最初のサブウィンドウから検索を開始します。
- lpszClassパラメータは、子ウィンドウのクラス名を指定します。NULLの場合は、このパラメータは無視されます。
- lpszWindowパラメータは子ウィンドウのタイトルを指定し、NULLの場合、このパラメータは無視されます。
注意:使用上の関数を利用する前に、以下名前空間をプロジェクトに取り込む必要があります:
using System.Runtime.InteropServices;
これで C# 内で FindWindow 関数と FindWindowEx 関数を使用してウィンドウのハンドルを検索できます。