/// <summary> /// FFXIVより前面にいるか? /// </summary> /// <param name="overlay"></param> /// <returns></returns> private static bool IsOverlaysGameWindow( this IOverlay overlay) { var xivHandle = GetGameWindowHandle(); var handle = overlay.GetHandle(); if (xivHandle == IntPtr.Zero) { return(false); } while (handle != IntPtr.Zero) { // Overlayウィンドウよりも前面側にFF14のウィンドウがあった if (handle == xivHandle) { return(false); } handle = NativeMethods.GetWindow(handle, NativeMethods.GW_HWNDPREV); } // 前面側にOverlayが存在する、もしくはFF14が起動していない return(true); }
/// <summary> /// Windowを最前面に持ってくる /// </summary> /// <param name="overlay"></param> public static void EnsureTopMost( this IOverlay overlay) { NativeMethods.SetWindowPos( overlay.GetHandle(), NativeMethods.HWND_TOPMOST, 0, 0, 0, 0, NativeMethods.SWP_NOSIZE | NativeMethods.SWP_NOMOVE | NativeMethods.SWP_NOACTIVATE); }