/* * Major event handlers */ /// <summary> /// Mouse event handler /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Event_mouse(object sender, EventArgs e) { // Do not run if user has not pressed run button if (!Settings.flag_run || !Settings.flag_runRightClick) { return; } // Only run if "Path of Exile" is the main focused window if (WindowDiscovery.GetActiveWindowTitle() != Settings.activeWindowTitle) { return; } // Send Ctrl+C on mouse click KeyEmulator.SendCtrlC(); }
/// <summary> /// Clipboard event handler /// </summary> private void Event_clipboard(object sender, EventArgs e) { // Do not run if user has not pressed run button if (!Settings.flag_run && !Settings.flag_runRightClick) { return; } // Only run if "Path of Exile" is the main focused window if (WindowDiscovery.GetActiveWindowTitle() != Settings.activeWindowTitle) { return; } // At this point there should be text in the clipboard if (!Clipboard.ContainsText()) { return; } // TODO: check limits // Sleep to allow clipboard write action to finish Thread.Sleep(4); // Get clipboard contents string clipboardString = Clipboard.GetText(); // Since this event handles *all* clipboard events AND we put the buyout note in the clipboard // then this event will also fire when we do that. So, to prevent an infinte loop, this is needed if (clipboardString.Contains("~b/o ") || clipboardString.Contains("~price ")) { Task.Run(() => ClipBoard_NotePasteTask()); } else { Task.Run(() => ClipBoard_ItemParseTask(clipboardString)); } }