GeekFactory

int128.hatenablog.com

C#からWin32 APIをコールする方法

アクティブなウィンドウのタイトルを取得する例を考えよう。
クラス内に以下の宣言を追加する:

[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int length);

タイトルを取得するコードは以下である:

IntPtr hWnd = GetForegroundWindow();
StringBuilder title = new StringBuilder(1048);
GetWindowText(hWnd, title, 1024);

ポインタやハンドルはIntPtrで、文字列はStringBuilderでやり取りする。