Esempio n. 1
0
        /// <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);
 }