/// <summary> /// Precesa el comporatiento de la aplicación al presionarse una tecla. /// </summary> /// <param name="sender">Listener del teclado</param> /// <param name="e">Información de la tecla presionada</param> private void _listener_OnKeyPressed(object sender, KeyPressedArgs e) { try { if (e.KeyPressed != Key.Enter) { // Si presionamos SHIFT + F1 if (_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && e.KeyPressed == Key.F1) { // Si La ventana de información detallada está abierta la cerramos if (InfoBrowser.IsVisible) { CloseWindowBrowser(InfoBrowser); } // Abrimos una ventana con la web personalizada. OpenWindowBrowser(CustomBrowser, _service.UrlNavegarCustom, InfoBrowser); } // Si presionamos SHIFT + F2 else if (_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && e.KeyPressed == Key.F2) { // Cerramos la ventana con la web personalizada CloseWindowBrowser(CustomBrowser); } // Si la tecla presioanada es numérica else if (!_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && (e.KeyPressed >= Key.D0 && e.KeyPressed <= Key.D9 || e.KeyPressed >= Key.NumPad0 && e.KeyPressed <= Key.NumPad9)) { // Almacenamos el valor de la tecla. StoreKey(e.KeyPressed); } } else if (!CustomBrowser.IsVisible && !string.IsNullOrEmpty(_keyData)) { var enteredNumbers = _keyData; Task.Run(() => ProccessEnterKey(enteredNumbers)).ContinueWith(t => { if (t.Result) { OpenWindowBrowser(InfoBrowser, _service.UrlNavegar, CustomBrowser); } }, TaskScheduler.FromCurrentSynchronizationContext()); // Limpiamos _keyData para otro proceso. _keyData = string.Empty; SendKeyEnter(); } else { // Siempre que se presiona ENTER se limpia _keyData _keyData = string.Empty; } } catch (MySqlException mysqle) { //if (!mysqle.Message.Contains("Timeout")) //{ // MessageBox.Show("Ha ocurrido un error. Comuníquese con el Administrador.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); //} } catch (Exception ex) { //MessageBox.Show("Ha ocurrido un error. Comuníquese con el Administrador.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
/// <summary> /// Precesa el comporatiento de la aplicación al presionarse una tecla. /// </summary> /// <param name="sender">Listener del teclado</param> /// <param name="e">Información de la tecla presionada</param> private void _listener_OnKeyPressed(object sender, KeyPressedArgs e) { try { if (e.KeyPressed != Key.Enter && !(_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_CONTROL) && e.KeyPressed == Key.M)) { #region Low level Keyboard for HotKey // Si presionamos SHIFT + F1 if (_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && e.KeyPressed == Key.F1) { // Si La ventana de información detallada está abierta la cerramos if (InfoBrowser.IsVisible) { CloseWindowBrowser(InfoBrowser); } // Abrimos una ventana con la web personalizada. OpenWindowBrowser(CustomBrowser, _service.UrlNavegarCustom, InfoBrowser); } // Si presionamos SHIFT + F3 else if (_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && e.KeyPressed == Key.F3) { // Si La ventana de información detallada está abierta la cerramos if (InfoBrowser.IsVisible) { CloseWindowBrowser(InfoBrowser); } //Si esta abierta la ventana de custom browser la cerramos if (CustomBrowser.IsVisible) { CloseWindowBrowser(CustomBrowser, _service.CachingNavegationCustom); } // Abrimos una ventana con la web personalizada. OpenWindowBrowser(CustomBrowserR, _service.UrlRecomendaciones, InfoBrowser); } // Si presionamos SHIFT + F2 else if (_listener.IsHardwareKeyDown(LowLevelKeyboardListener.VirtualKeyStates.VK_SHIFT) && e.KeyPressed == Key.F2) { // Cerramos la ventana con la web personalizada CloseWindowBrowser(CustomBrowser, _service.CachingNavegationCustom); CloseWindowBrowser(CustomBrowserR); } #endregion Low level Keyboard for HotKey // Almacenamos el valor de la tecla. if (e.KeyPressed.IsDigit(_listener) || e.KeyPressed.IsCharacter(_listener)) { StoreKey(e.KeyPressed); } } else if (!CustomBrowser.IsActive && !CustomBrowserR.IsActive && !string.IsNullOrEmpty(_keyData)) { var entryData = _keyData; Task.Run(() => ProccessEnterKey(entryData)).ContinueWith(t => { if (t.Result) { System.Threading.Thread.Sleep(_tiempoEspera); OpenWindowBrowser(InfoBrowser, _service.UrlNavegar, CustomBrowser); } }, TaskScheduler.FromCurrentSynchronizationContext()); // Limpiamos _keyData para otro proceso. _keyData = string.Empty; // SendKeyEnter(); } else { // Siempre que se presiona ENTER se limpia _keyData _keyData = string.Empty; } } catch (MySqlException mysqle) { //if (!mysqle.Message.Contains("Timeout")) //{ // MessageBox.Show("Ha ocurrido un error. Comuníquese con el Administrador.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); //} } catch (Exception ex) { //MessageBox.Show("Ha ocurrido un error. Comuníquese con el Administrador.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }