private void Overlay_Loaded(object sender, RoutedEventArgs e) { // Start topmost updater _winHook = new WindowHook(); _winHook.BrawlhallaOpened += (_, __) => MessageBox.Show("bh opened"); _winHook.WindowFocused += (_, __) => this.Topmost = true; _winHook.LostWindowFocus += (_, __) => this.Topmost = false; // Add ping items var config = ConfigManager.GetPingConfig(); foreach (var server in config.ServersEnabled) { var item = new PingItem(server.Name, Utilities.GetIPToPingFromName(server.Name), server.XPos, server.YPos); (this.Content as Canvas).Children.Add(item); item.MoveTo(item.XPos, item.YPos); } // Create low level mouse hook LowLevelMouseHook.Hook(); // Handle moving of ping items LowLevelMouseHook.MouseDown += Overlay_MouseDown; LowLevelMouseHook.MouseMoved += Overlay_MouseMoved; LowLevelMouseHook.MouseUp += Overlay_MouseUp; }
public static ActorCommonData GetTarget() { ActorCommonData acdTarget = null; var queryMonster = ActorCommonDataHelper.EnumerateMonsters().Where(x => x.x0D0_WorldPosX > 0 && x.x188_Hitpoints > 00001 && x.x190_TeamId == 10 && x.x184_ActorType == Enigma.D3.Enums.ActorType.Monster && !x.x004_Name.Contains("sandWasp")); var queryMonsterQuality = queryMonster .Where(x => x.x0B8_MonsterQuality > Enigma.D3.Enums.MonsterQuality.Normal) .OrderBy(x => x.x0B8_MonsterQuality); if (queryMonsterQuality.Any()) { var acd = queryMonsterQuality.First(); WindowHook.SetD3WindowText(string.Format("Target {0} x098_MonsterSnoId:{1}", acd.x004_Name, acd.x098_MonsterSnoId)); return(acd); } var queryMonsterLeft = queryMonster .OrderBy(x => x.x188_Hitpoints); if (queryMonsterLeft.Any()) { var acd = queryMonsterLeft.First(); WindowHook.SetD3WindowText(string.Format("Target {0} x098_MonsterSnoId:{1}", acd.x004_Name, acd.x184_ActorType == Enigma.D3.Enums.ActorType.Monster)); return(acd); } WindowHook.SetD3WindowText("Target NULL"); return(acdTarget); }
/// <summary> /// Start to watch /// </summary> public void Start() { lock (accesslock) { if (!isRunning) { activeWindows = new Dictionary <IntPtr, WindowData>(); prevTimeApp = DateTime.Now; taskCancellationTokenSource = new CancellationTokenSource(); appQueue = new AsyncConcurrentQueue <object>(taskCancellationTokenSource.Token); //This needs to run on UI thread context //So use task factory with the shared UI message pump thread Task.Factory.StartNew(() => { windowHook = new WindowHook(factory); windowHook.WindowCreated += WindowCreated; windowHook.WindowDestroyed += WindowDestroyed; windowHook.WindowActivated += WindowActivated; }, CancellationToken.None, TaskCreationOptions.None, factory.GetTaskScheduler()).Wait(); lastEventWasLaunched = false; lastHwndLaunched = IntPtr.Zero; Task.Factory.StartNew(() => AppConsumer()); isRunning = true; } } }
/// <summary> /// 初始化 /// </summary> void Init() { this.Title = Config.g_title;//标题 WindowHook.RepairWindowBehavior(this); //充电监控 Frame cim = (Frame)FindName("frame_cim"); cim.Content = m_cim; OpenCIM(); //配电监控 Frame pdm = (Frame)FindName("frame_pdm"); pdm.Content = m_pdm; //安防监控 Frame sem = (Frame)FindName("frame_sem"); sem.Content = m_sem; //消防监控 Frame ffm = (Frame)FindName("frame_ffm"); ffm.Content = m_ffm; TCPStar(); }
private void SetWindow() { var captureDevice = VideoSettings.CaptureDevice; var item = windowsComboBox.SelectedItem; if (item != null) { var tag = ((ComboBoxItem)item).Tag; if (tag != null) { WindowDescription window = tag as WindowDescription; if (window != null) { var windowCapture = (WindowCaptureDevice)captureDevice; windowCapture.ClientRect = window.clientRect; windowCapture.Resolution = window.clientRect.Size; windowCapture.hWnd = window.hWnd; windowCapture.ProcName = window.processName; windowCapture.WindowClass = window.windowClass; windowCapture.WindowTitle = window.windowTitle; if (windowForm == null) { windowForm = new SelectAreaForm(true, false) { StartPosition = FormStartPosition.Manual, Locked = true, }; } windowForm.Visible = false; if (windowHook != null) { windowHook.Close(); } windowHook = new WindowHook(); windowHook.LocationChanged += WindowHook_LocationChanged; windowHook.WindowClosed += WindowHook_WindowClosed; windowHook.VisibleChanged += WindowHook_VisibleChanged; windowHook.Setup(windowCapture.hWnd); var rect = windowHook.GetCurrentWindowRect(); SetWindowsPosition(rect); windowForm.Visible = true; } } } }
/// <summary> /// Performs sciter initialization /// </summary> private void InitializeSciter() { Hook.HandleDestroyed += delegate { HandleInternal = IntPtr.Zero; Hook = null; }; // Processing WM_CREATE through sciter bool handled = false; SciterHostApi.SciterProcND(Handle, User32.WM_CREATE, IntPtr.Zero, IntPtr.Zero, ref handled); SciterHostApi.SciterSetCallback(Handle, Host); }
private void GHook_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.NumPad1) { IsBotRunning = true; WindowHook.SetD3WindowText("Dev Running"); StartSimpleRun(); } if (e.KeyCode == Keys.NumPad2) { IsBotRunning = false; WindowHook.SetD3WindowText("Dev Stopped"); } }
private void HookWindow(IntPtr handle) { if (hook != null) { hook.ReleaseHandle(); } // hook = new WindowHook(handle); // ウィンドウフック hook.WindowProc += (_sender, _e) => { Message message = (_e as WindowProcEventArgs).Message; WindowsMessage winmessage = (WindowsMessage)message.Msg; System.Console.WriteLine("Msg : {0}\t{1}\t{2}", winmessage, message.WParam, message.LParam); }; }
private void CloseWindowHook() { if (windowHook != null) { windowHook.LocationChanged -= WindowHook_LocationChanged; windowHook.VisibleChanged -= WindowHook_VisibleChanged; windowHook.WindowClosed -= WindowHook_WindowClosed; windowHook.Close(); windowHook = null; } if (windowForm != null) { windowForm.Visible = false; windowForm.Location = Point.Empty; windowForm.Size = Size.Empty; } }
/// <summary> /// Attaches SciterView to the existing window /// </summary> public static SciterView Attach(IntPtr handle, ISciterHost host) { #region Parameters checking if (handle == IntPtr.Zero) { throw new ArgumentException("handle"); } if (host == null) { throw new ArgumentNullException("host"); } #endregion SciterView view = new SciterView(); view.Host = host; view.HandleInternal = handle; view.Hook = WindowHook.Install(handle, view.ProcessMessage); view.InitializeSciter(); return(view); }
/// <summary> /// 初始化 /// </summary> void Init() { this.Title = Config.g_title;//标题 WindowHook.RepairWindowBehavior(this); if (!File.Exists(Config.g_root + "\\config.ini")) { using (StreamWriter sw = File.CreateText(Config.g_root + "\\config.ini")) { } } else { List <string> list = new List <string>(); using (StreamReader sr = new StreamReader(Config.g_root + "\\config.ini")) { while (!sr.EndOfStream) { list.Add(sr.ReadLine()); } } for (int i = 0; i < list.Count; i++) { string[] arr = list[i].Split(':'); switch (arr[0]) { case "check_remember_checked": m_check_remember_checked = bool.Parse(arr[1]); break; case "text_name_text": m_text_name_text = arr[1]; break; } } } check_remember.IsChecked = m_check_remember_checked; text_name.Text = m_text_name_text; }
public MainWindow() { InitializeComponent(); this.KeyboardHook(); Engine.Create(); WindowHook.SetD3WindowText("Dev Stopped"); this.LoadLocalData(); this.LoadBuffManager(); this.LoadUIHandlers(); this.LoadActors(); //new System.Threading.Thread(() => //{ // while (true) // { // this.RefreshDebugInfo(); // System.Threading.Thread.Sleep(10000000); // } //}).Start(); //new System.Threading.Thread(() => //{ // while (true) // { // if (IsBotRunning) // StartSimpleRun(); // System.Threading.Thread.Sleep(1000); // } //}).Start(); }
public void init() { if (working) { throw new Exception("La clase ya ha sido inicializada"); } working = true; lapiz = new Pen(Color.Red); IWindowEventListener escuchadorTeclado = WindowEventListener.getInstance(this); hookWindow = new WindowHook(this.handlerTarget, escuchadorTeclado); //Bug, simplemente no tengo permiso para instalar un hook en un proceso especifico. /* * new Thread //Este hilo en segundo plano se encarga de ir consultando el tamaño de la ventana objetivo y en caso de existir modificación, notificarnoslo * ( * () => * { * RECT rect; * Thread.CurrentThread.IsBackground = true; * Thread.CurrentThread.Name = "movedWindowListener"; * while (this.working) * { * GetWindowRect(this.handlerTarget, out rect); * if (this.ctrlTargetRect != rect) * { * this.ctrlTargetRect = rect; * this.adjust(); * } * Thread.Sleep(500); * } * } * ).Start(); */ }
/// <summary> /// The remove hook. /// </summary> /// <param name="winProc"> /// The win proc. /// </param> public void RemoveHook(WindowHook winProc) { Contract.Requires<ArgumentNullException>(winProc != null, "winProc"); EnsureSource(); UiSynchronize.Synchronize.Invoke(() => _source.RemoveHook(Create(winProc))); }
public static extern IntPtr SetWindowsHookExW([In, MarshalAs(I4)] WindowHook idHook, [In] HookProc lpfn, [In] IntPtr hmod, [In, MarshalAs(U4)] uint dwThreadId);
internal static KeyEventFlags ConvertFlags(WindowHook.LLKHF flags) { KeyEventFlags newFlags = KeyEventFlags.None; if (WinAPI.WindowHook.LLKHF.UP == (WinAPI.WindowHook.LLKHF.UP & flags)) { newFlags |= KeyEventFlags.KEYEVENTF_KEYUP; } if (WinAPI.WindowHook.LLKHF.EXTENDED == (WinAPI.WindowHook.LLKHF.EXTENDED & flags)) { newFlags |= KeyEventFlags.KEYEVENTF_EXTENDEDKEY; } return newFlags; }
public static bool FocusCheck() { string title = WindowHook.GetActiveWindowTitle(); return(!string.IsNullOrEmpty(title) && title.Contains("Conquer")); }
/// <summary> /// The remove hook. /// </summary> /// <param name="winProc"> /// The win proc. /// </param> public void RemoveHook(WindowHook winProc) { Contract.Requires<ArgumentNullException>(winProc != null, "winProc"); }