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); } }
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)); } }
public static void Unminimize(IntPtr window) { var hwnd = window; Win32Interfaces.ShowWindow(hwnd, Win32Interfaces.ShowWindowCommands.Restore); }
public static void Unminimize(Window window) { var hwnd = (HwndSource.FromVisual(window) as HwndSource).Handle; Win32Interfaces.ShowWindow(hwnd, Win32Interfaces.ShowWindowCommands.Restore); }
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); }