|
■No81920 (glanheit さん) に返信 > アクティブウィンドウが最前面表示になっているかなっていないかの確認をGetWindowLongでしたいと思っています。
[DllImport("user32", CharSet = CharSet.Auto, EntryPoint = "GetWindowLong")] private static extern IntPtr GetWindowLongPtr32(IntPtr hWnd, int nIndex);
[DllImport("user32", CharSet = CharSet.Auto, EntryPoint = "GetWindowLongPtr")] private static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, int nIndex);
public static bool IsTopMost(IntPtr hWnd) { const int GWL_EXSTYLE = -20; int WS_EX_TOPMOST = 8; if (IntPtr.Size == 4) { return (GetWindowLongPtr32(hWnd, GWL_EXSTYLE).ToInt32() & WS_EX_TOPMOST) != 0; } else { return (GetWindowLongPtr64(hWnd, GWL_EXSTYLE).ToInt64() & (long)WS_EX_TOPMOST) != 0L; } }
|