private void KeyDown(AndroidKeycode keycode) { Scrcpy.Instance.SendControlCmd(AssemblyControlCmd.Ass_KeyCode( AndroidKeyeventAction.AKEY_EVENT_ACTION_DOWN, keycode, AndroidMetastate.AMETA_NONE)); Scrcpy.Instance.SendControlCmd(AssemblyControlCmd.Ass_KeyCode( AndroidKeyeventAction.AKEY_EVENT_ACTION_UP, keycode, AndroidMetastate.AMETA_NONE)); }
/// <summary> /// 拼装键盘事件 /// </summary> /// <param name="akeAction">事件类型</param> /// <param name="akeycode">键盘值</param> /// <param name="ametastate">辅助值</param> /// <returns></returns> public static byte[] Ass_KeyCode(AndroidKeyeventAction akeAction, AndroidKeycode akeycode, AndroidMetastate ametastate) { byte[] cmdBytes = new byte[10]; //type cmdBytes[0] = (byte)control_msg_type.CMT_INJECT_KEYCODE; cmdBytes[1] = (byte)akeAction; byte[] akeyCodeBytes = BitConverter.GetBytes((int)akeycode); cmdBytes[2] = akeyCodeBytes[3]; cmdBytes[3] = akeyCodeBytes[2]; cmdBytes[4] = akeyCodeBytes[1]; cmdBytes[5] = akeyCodeBytes[0]; byte[] ametstateBytes = BitConverter.GetBytes((int)ametastate); cmdBytes[6] = ametstateBytes[3]; cmdBytes[7] = ametstateBytes[2]; cmdBytes[8] = ametstateBytes[1]; cmdBytes[9] = ametstateBytes[0]; return(cmdBytes); }
private void SendKeycode(AndroidKeycode key) { if (Scrcpy == null) { return; } Scrcpy.SendControlCommand(new KeycodeControlMessage { KeyCode = key, Action = AndroidKeyEventAction.AKEY_EVENT_ACTION_DOWN }); // No need to wait before sending the KeyUp event. Scrcpy.SendControlCommand(new KeycodeControlMessage { KeyCode = key, Action = AndroidKeyEventAction.AKEY_EVENT_ACTION_UP }); }