//Send the clicked button async Task KeyButtonClick(object sender) { try { PlayInterfaceSound(vConfigurationCtrlUI, "Click", false, false); Button sendButton = sender as Button; Type sendKeyType = sendButton.Tag.GetType(); string sendKeyName = sendButton.Tag.ToString(); if (sendKeyType == typeof(string)) { if (sendKeyName == "EmojiPopup") { await ShowHideEmojiListPopup(); } else if (sendKeyName == "TextListPopup") { await ShowHideTextListPopup(); } } else { if (sendKeyType == typeof(KeyboardKeys)) { KeyboardKeys sendKey = (KeyboardKeys)sendButton.Tag; Debug.WriteLine("Sending Keyboard key: " + sendKey); SendKeyKeyboard(sendKey); } else if (sendKeyType == typeof(KeyboardModifiers)) { KeyboardModifiers sendKey = (KeyboardModifiers)sendButton.Tag; Debug.WriteLine("Sending Modifier key: " + sendKey); SendKeyModifier(sendKey); } else if (sendKeyType == typeof(KeyboardMultimedia)) { KeyboardMultimedia sendKey = (KeyboardMultimedia)sendButton.Tag; Debug.WriteLine("Sending Multimedia key: " + sendKey); if (sendKey == KeyboardMultimedia.VolumeMute) { await VolumeOutputMute(); } else if (sendKey == KeyboardMultimedia.VolumeUp) { await VolumeUp(); } else if (sendKey == KeyboardMultimedia.VolumeDown) { await VolumeDown(); } else { SendKeyMultimedia(sendKey); } } } } catch { } }
void SendKeyMultimedia(KeyboardMultimedia sendKey) { try { vFakerInputDevice.MultimediaPressRelease(sendKey); } catch { } }
public bool MultimediaPressRelease(KeyboardMultimedia keyMultimedia) { try { MultimediaPress(keyMultimedia); AVActions.TaskDelayMs(50); MultimediaReset(); return(true); } catch { Debug.WriteLine("Failed to press and release multimedia key."); return(false); } }
private bool MultimediaPress(KeyboardMultimedia keyMultimedia) { try { FAKERINPUT_CONTROL_REPORT_HEADER structHeader = new FAKERINPUT_CONTROL_REPORT_HEADER(); structHeader.ReportID = (byte)FAKERINPUT_REPORT_ID.REPORTID_CONTROL; structHeader.ReportLength = (byte)Marshal.SizeOf(typeof(FAKERINPUT_MULTIMEDIA_REPORT)); byte[] headerArray = ConvertToByteArray(structHeader); FAKERINPUT_MULTIMEDIA_REPORT structInput = new FAKERINPUT_MULTIMEDIA_REPORT(); structInput.ReportID = (byte)FAKERINPUT_REPORT_ID.REPORTID_MULTIMEDIA; structInput.MultimediaKey0 = (byte)keyMultimedia; byte[] inputArray = ConvertToByteArray(structInput); return(WriteBytesFile(MergeHeaderInputByteArray(CONTROL_REPORT_SIZE, headerArray, inputArray))); } catch { Debug.WriteLine("Failed to press multimedia key."); return(false); } }
public string GetKeyboardMultimediaName(KeyboardMultimedia multimediaKey, bool shortName) { try { switch (multimediaKey) { case KeyboardMultimedia.Next: if (shortName) { return("Next"); } else { return("Media Next"); } case KeyboardMultimedia.Previous: if (shortName) { return("Prev"); } else { return("Media Previous"); } case KeyboardMultimedia.Stop: if (shortName) { return("Stop"); } else { return("Media Stop"); } case KeyboardMultimedia.PlayPause: if (shortName) { return("Play"); } else { return("Media Play/Pause"); } case KeyboardMultimedia.VolumeMute: if (shortName) { return("Mute"); } else { return("Volume Mute"); } case KeyboardMultimedia.VolumeDown: if (shortName) { return("VolDn"); } else { return("Volume Down"); } case KeyboardMultimedia.VolumeUp: if (shortName) { return("VolUp"); } else { return("Volume Up"); } } } catch { } return(Enum.GetName(typeof(KeyboardMultimedia), multimediaKey)); }