Exemplo n.º 1
0
 protected void MakeWindowClickbale()
 {
     try
     {
         var hwnd  = new WindowInteropHelper(this).Handle;
         var style = Win32Interfaces.GetWindowLong(hwnd, Win32Interfaces.GWL_EXSTYLE);
         Win32Interfaces.SetWindowLong(hwnd, Win32Interfaces.GWL_EXSTYLE, style ^ Win32Interfaces.WS_EX_LAYERED ^ Win32Interfaces.WS_EX_TRANSPARENT);
     }
     catch (Exception e)
     {
         Logger.WriteLog(Convert.ToString(e));
     }
 }
 static public void ShowFirstInstance()
 {
     try
     {
         Win32Interfaces.PostMessage(
             (IntPtr)Win32Interfaces.HWND_BROADCAST,
             WM_SHOWFIRSTINSTANCE,
             IntPtr.Zero,
             IntPtr.Zero);
     }
     catch (Exception e)
     {
         Logger.WriteLog(e);
     }
 }
Exemplo n.º 3
0
 protected void MakeWindowClickThrought()
 {
     try
     {
         if (!_IsClickThrought)
         {
             this.UIThread(() =>
             {
                 var hwnd  = new WindowInteropHelper(this).Handle;
                 var style = Win32Interfaces.GetWindowLong(hwnd, Win32Interfaces.GWL_EXSTYLE);
                 Win32Interfaces.SetWindowLong(hwnd, Win32Interfaces.GWL_EXSTYLE, style | Win32Interfaces.WS_EX_LAYERED | Win32Interfaces.WS_EX_TRANSPARENT);
                 _IsClickThrought = true;
             });
         }
     }
     catch (Exception e)
     {
         Logger.WriteLog(Convert.ToString(e));
     }
 }
Exemplo n.º 4
0
        public static void Unminimize(IntPtr window)
        {
            var hwnd = window;

            Win32Interfaces.ShowWindow(hwnd, Win32Interfaces.ShowWindowCommands.Restore);
        }
Exemplo n.º 5
0
        public static void Unminimize(Window window)
        {
            var hwnd = (HwndSource.FromVisual(window) as HwndSource).Handle;

            Win32Interfaces.ShowWindow(hwnd, Win32Interfaces.ShowWindowCommands.Restore);
        }
Exemplo n.º 6
0
        private void WatchFFWindowState()
        {
            Task.Factory.StartNew(async() =>
            {
                System.Windows.WindowState FFXIVPrevWindowState = System.Windows.WindowState.Minimized;
                FFWindowState = System.Windows.WindowState.Minimized;

                bool _isRunningPrev = false;
                while (_KeepWorking && _KeepReading)
                {
                    try
                    {
                        bool IsExclusionWindow = false;

                        System.Windows.WindowState FFXIVWindowState = System.Windows.WindowState.Normal;
                        var fgWindow = Win32Interfaces.GetForegroundWindow();

                        if (_FfXivProcess != null)
                        {
                            if (_FfXivProcess.MainWindowHandle != fgWindow)
                            {
                                FFXIVWindowState = System.Windows.WindowState.Minimized;
                            }
                            else
                            {
                                FFXIVWindowState = System.Windows.WindowState.Normal;
                            }
                        }

                        for (int i = 0; i < _ExclusionWindowHandlers.Count; i++)
                        {
                            if (fgWindow == _ExclusionWindowHandlers[i])
                            {
                                IsExclusionWindow = true;
                                break;
                            }
                        }

                        if (!IsExclusionWindow && fgWindow != IntPtr.Zero)
                        {
                            var oldValue = FFXIVPrevWindowState;

                            if (FFXIVWindowState != FFXIVPrevWindowState)
                            {
                                FFXIVPrevWindowState = FFXIVWindowState;

                                var ea = new WindowStateChangeEventArgs(this)
                                {
                                    OldWindowState = oldValue,
                                    NewWindowState = FFXIVPrevWindowState,

                                    IsRunningOld = _isRunningPrev,
                                    IsRunningNew = true,

                                    Text = ""
                                };

                                _FFWindowStateChanged.InvokeAsync(ea).Forget();
                            }

                            FFWindowState = FFXIVPrevWindowState;
                        }

                        Process[] processes = Process.GetProcessesByName(_FfProcessName);
                        if (processes.Length == 0)
                        {
                            System.Windows.WindowState oldState = System.Windows.WindowState.Normal;
                            var ea = new WindowStateChangeEventArgs(this)
                            {
                                OldWindowState = oldState,
                                NewWindowState = FFXIVPrevWindowState,

                                IsRunningOld = _isRunningPrev,
                                IsRunningNew = false,
                                Text         = ""
                            };

                            _FFWindowStateChanged.InvokeAsync(ea).Forget();

                            _KeepReading = false;

                            _isRunningPrev = false;

                            FFWindowState = System.Windows.WindowState.Minimized;

                            MemoryHandler.Instance.UnsetProcess();
                        }
                        else
                        {
                            if (_isRunningPrev == false)
                            {
                                System.Windows.WindowState oldState = System.Windows.WindowState.Minimized;
                                System.Windows.WindowState newState = System.Windows.WindowState.Normal;
                                var ea = new WindowStateChangeEventArgs(this)
                                {
                                    OldWindowState = oldState,
                                    NewWindowState = newState,

                                    IsRunningOld = _isRunningPrev,
                                    IsRunningNew = true,
                                    Text         = processes[0].ProcessName + ".exe" + "  PID: " + processes[0].Id.ToString()
                                };

                                _FFWindowStateChanged.InvokeAsync(ea).Forget();

                                FFWindowState = System.Windows.WindowState.Normal;
                            }

                            _isRunningPrev = true;
                        }
                    }
                    catch (Exception e)
                    {
                        Logger.WriteLog(Convert.ToString(e));
                    }

                    await Task.Delay(GlobalSettings.MemoryReaderDelay);
                }
            }, TaskCreationOptions.LongRunning);
        }