public MainWindow() { InitializeComponent(); KeyboardWatcher.Start(); KeyboardWatcher.OnKeyInput += (s, e) => { Debug.WriteLine(string.Format("Key {0} event of key {1}", e.KeyData.EventType, e.KeyData.Keyname)); }; MouseWatcher.Start(); MouseWatcher.OnMouseInput += (s, e) => { Debug.WriteLine(string.Format("Mouse event {0} at point {1},{2}", e.Message.ToString(), e.Point.x, e.Point.y)); }; ClipboardWatcher.Start(); ClipboardWatcher.OnClipboardModified += (s, e) => { Debug.WriteLine(string.Format("Clipboard updated with data '{0}' of format {1}", e.Data, e.DataFormat.ToString())); }; ApplicationWatcher.Start(); ApplicationWatcher.OnApplicationWindowChange += (s, e) => { Debug.WriteLine(string.Format("Application window of '{0}' with the title '{1}' was {2}", e.ApplicationData.AppName, e.ApplicationData.AppTitle, e.Event)); }; PrintWatcher.Start(); PrintWatcher.OnPrintEvent += (s, e) => { Debug.WriteLine(string.Format("Printer '{0}' currently printing {1} pages.", e.EventData.PrinterName, e.EventData.Pages)); }; }
private void PrintWatcherOnPrintEvent(object sender, PrintEventArgs e) { ///ToDo надо добиться того, чтобы приходили только текущие задачи var d = PrintWatcher.PausePrintJob(e.EventData.SpoolerName, e.JobId.ToString()); Console.WriteLine(e.EventData.FileName); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(d?"HOOK: job paused":"HOOK: job NOT PAUSED"); Console.ForegroundColor = ConsoleColor.White; try { e.EventData.Ji.Refresh(); if (e.EventData.JobDetail != null && e.EventData.JobDetail.JobInfo2.TotalPages != 0) { _action(new JobMeta( e.EventData.FileName, e.EventData.UnicJobId, (int)e.EventData.JobDetail.JobInfo2.TotalPages, e.EventData.JobDetail.DevMode.dmCopies, e.EventData.Ji )); } } catch (Exception ex) { _lgr.Error(ex, "При обработке задания произошла ошибка."); } }
public PrinterWrapper(string titleOfPrinter, Logger lgr) { TitleOfPrinter = titleOfPrinter; PrintWatcher.Start(TitleOfPrinter); //Это из либы с GitHub PrintWatcher.OnPrintEvent += PrintWatcherOnPrintEvent; _lgr = lgr; }
public MainWindow() { InitializeComponent(); Application.Current.Exit += OnApplicationExit; keyboardWatcher = eventHookFactory.GetKeyboardWatcher(); keyboardWatcher.Start(); keyboardWatcher.OnKeyInput += (s, e) => { Console.WriteLine("Key {0} event of key {1}", e.KeyData.EventType, e.KeyData.Keyname); }; mouseWatcher = eventHookFactory.GetMouseWatcher(); mouseWatcher.Start(); mouseWatcher.OnMouseInput += (s, e) => { Console.WriteLine("Mouse event {0} at point {1},{2}", e.Message.ToString(), e.Point.x, e.Point.y); }; clipboardWatcher = eventHookFactory.GetClipboardWatcher(); clipboardWatcher.Start(); clipboardWatcher.OnClipboardModified += (s, e) => { Console.WriteLine("Clipboard updated with data '{0}' of format {1}", e.Data, e.DataFormat.ToString()); }; applicationWatcher = eventHookFactory.GetApplicationWatcher(); applicationWatcher.Start(); applicationWatcher.OnApplicationWindowChange += (s, e) => { Console.WriteLine("Application window of '{0}' with the title '{1}' was {2}", e.ApplicationData.AppName, e.ApplicationData.AppTitle, e.Event); }; printWatcher = eventHookFactory.GetPrintWatcher(); printWatcher.Start(); printWatcher.OnPrintEvent += (s, e) => { Console.WriteLine("Printer '{0}' currently printing {1} pages.", e.EventData.PrinterName, e.EventData.Pages); }; eventHookFactory.Dispose(); }
public void StartWatching() { try { _logger.Information(LogMessages.PrinterJobWatchingWasStarted); _logger.Debug(LogMessages.WorkWithPrinters); foreach (var p in _printers) { _logger.Debug(p); //Подключение на оповещения от принтера, отлавливается корректное задание, затем вызывается метод, который ниже подписывается на событие PrintWatcher.Start(p); //Это из либы с GitHub PrintWatcher.OnPrintEvent += PrintWatcherOnOnPrintEvent; } } catch (Exception ex) { _logger.Error(ex, "An error occurred while starting the job tracking feature"); } }
public MainWindow() { InitializeComponent(); if (Properties.Settings.Default["filePath"].ToString() != "") { filePath = Properties.Settings.Default["filePath"].ToString(); } else { filePath = Path.Combine(Environment.ExpandEnvironmentVariables("%userprofile%"), @"Videos\Observations"); } for (int i = 0; i < Screen.AllScreens.Length; i++) { ScreenBox.Items.Add("Display " + (i + 1)); } ScreenBox.SelectedIndex = currentScreen; ScreenBox.SelectionChanged += ScreenBox_SelectedIndexChanged; SelectLocationButton.Click += SelectLocationButton_Click; TrayRecordButton.Click += TrayRecordButton_Click; SettingsButton.Click += SettingsButton_Click; ClosingButton.Click += ClosingButton_Click; QuitButton.Click += QuitButton_Click; LocationEntry.Text = filePath; SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; Hide(); #region Configure Event Handlers keyboardWatcher = eventHookFactory.GetKeyboardWatcher(); keyboardWatcher.Start(); keyboardWatcher.OnKeyInput += (s, e) => { string eventString = string.Format("Key {0} event of key {1}", e.KeyData.EventType, e.KeyData.Keyname); Dispatcher.BeginInvoke((Action)(() => { KeyboardEvents.Content = eventString; })); if (isRecording) { eventWriter.WriteEvent(EventWriter.InputEvent.Keyboard, eventString); } }; mouseWatcher = eventHookFactory.GetMouseWatcher(); mouseWatcher.Start(); mouseWatcher.OnMouseInput += (s, e) => { string eventString = string.Format("Mouse event {0} at point {1},{2}", e.Message.ToString(), e.Point.x, e.Point.y); Dispatcher.BeginInvoke((Action)(() => { MouseEvents.Content = eventString; })); if (isRecording) { if (e.Message.ToString() == "WM_LBUTTONDOWN" || e.Message.ToString() == "WM_RBUTTONDOWN") { eventWriter.WriteEvent(EventWriter.InputEvent.MouseClick, eventString); } else { if ((mousePosition[0] == 0 && mousePosition[1] == 0) || Math.Abs(e.Point.x - mousePosition[0]) >= minDistance || Math.Abs(e.Point.y - mousePosition[1]) >= minDistance) { mousePosition[0] = e.Point.x; mousePosition[1] = e.Point.y; eventWriter.WriteEvent(EventWriter.InputEvent.MouseMove, eventString); } } } }; clipboardWatcher = eventHookFactory.GetClipboardWatcher(); clipboardWatcher.Start(); clipboardWatcher.OnClipboardModified += (s, e) => { eventWriter.WriteEvent(EventWriter.InputEvent.Clipboard, e.Data.ToString()); }; applicationWatcher = eventHookFactory.GetApplicationWatcher(); applicationWatcher.Start(); applicationWatcher.OnApplicationWindowChange += (s, e) => { string eventString = string.Format("Application window of '{0}' with the title '{1}' was {2}", e.ApplicationData.AppName, e.ApplicationData.AppTitle, e.Event); Dispatcher.Invoke(() => { ApplicationEvents.Content = eventString; }); if (isRecording) { eventWriter.WriteEvent(EventWriter.InputEvent.Application, eventString); } }; printWatcher = eventHookFactory.GetPrintWatcher(); printWatcher.Start(); printWatcher.OnPrintEvent += (s, e) => { string eventString = string.Format("Printer '{0}' currently printing {1} pages.", e.EventData.PrinterName, e.EventData.Pages); Dispatcher.Invoke(() => { PrinterEvents.Content = eventString; }); if (isRecording) { eventWriter.WriteEvent(EventWriter.InputEvent.Print, eventString); } }; #endregion try { RegisterChromeExtension(); } catch (Exception e) { NotifyIcon.ShowBalloonTip("Exception", e.Message, BalloonIcon.Info); } }
public MainForm() { Application.ApplicationExit += OnApplicationExit; InitializeComponent(); keyboardWatcher = eventHookFactory.GetKeyboardWatcher(); keyboardWatcher.OnKeyInput += (s, e) => { if (e.KeyData.EventType.ToString() == "down") { current_time = DateTime.Now; Hashtable this_event = new Hashtable { { "Event Type", "Keyboard" }, { "Event Info", e.KeyData.Keyname }, { "Job id", job_id }, { "Resource", resource }, { "Form", GainActivatedForm() }, { "Timestamp", current_time.ToString("yyyy-MM-dd HH:mm:ss") + "." + current_time.Millisecond.ToString() } }; eventlog.Add(this_event); } }; mouseWatcher = eventHookFactory.GetMouseWatcher(); string[] MouseMoveMent = { "WM_WHEELBUTTONDOWN", "WM_LBUTTONDOWN", "WM_MOUSEWHEEL", "WM_WHEELBUTTONDOWN" }; mouseWatcher.OnMouseInput += (s, e) => { if (Array.IndexOf(MouseMoveMent, e.Message.ToString()) != -1) { current_time = DateTime.Now; string[] inter = GainMouseClickClassName(e.Point.x, e.Point.y); Hashtable this_event = new Hashtable { { "Event Type", "Mouse" }, { "Event Info", e.Message.ToString() }, { "Position", e.Point.x.ToString() + "|" + e.Point.y.ToString() }, { "Job id", job_id }, { "Resource", resource }, { "Form", GainActivatedForm() }, { "Click_Name", inter[1] }, { "Click_ClassName", inter[0] }, { "Timestamp", current_time.ToString("yyyy-MM-dd HH:mm:ss") + "." + current_time.Millisecond.ToString() } }; eventlog.Add(this_event); } ; }; applicationWatcher = eventHookFactory.GetApplicationWatcher(); applicationWatcher.OnApplicationWindowChange += (s, e) => { Hashtable this_event = new Hashtable { { "Event Type", "Application" }, { "Event Info", e.ApplicationData.AppName + "|" + e.ApplicationData.AppTitle + "|" + e.Event }, { "Job id", job_id }, { "Resource", resource }, { "Form", GainActivatedForm() }, { "Timestamp", current_time.ToString("yyyy-MM-dd HH:mm:ss") + "." + current_time.Millisecond.ToString() } }; eventlog.Add(this_event); //Console.WriteLine("Application window of '{0}' with the title '{1}' was {2}", // e.ApplicationData.AppName, e.ApplicationData.AppTitle, e.Event); }; clipboardWatcher = eventHookFactory.GetClipboardWatcher(); clipboardWatcher.OnClipboardModified += (s, e) => { Hashtable this_event = new Hashtable { { "Event Type", "Clipboard" }, { "Event Info", e.Data }, { "Job id", job_id }, { "Resource", resource }, { "Form", GainActivatedForm() }, { "Timestamp", current_time.ToString("yyyy-MM-dd HH:mm:ss") + "." + current_time.Millisecond.ToString() } }; eventlog.Add(this_event); //Console.WriteLine("Clipboard updated with data '{0}' of format {1}", e.Data, // e.DataFormat.ToString()); }; ////////////////////////////////////////////////////////////////// printWatcher = eventHookFactory.GetPrintWatcher(); printWatcher.OnPrintEvent += (s, e) => { Hashtable this_event = new Hashtable { { "Event Type", "Printer" }, { "Event Info", e.EventData.PrinterName }, { "Job id", job_id }, { "Resource", resource }, { "Form", GainActivatedForm() }, { "Timestamp", current_time.ToString("yyyy-MM-dd HH:mm:ss") + "." + current_time.Millisecond.ToString() } }; eventlog.Add(this_event); //Console.WriteLine("Printer '{0}' currently printing {1} pages.", e.EventData.PrinterName, // e.EventData.Pages); }; }