public override void ExecuteCommand(string userId, string command)
        {
            ClientKeyboardCmd keyboardData = deserialize.Deserialize <ClientKeyboardCmd>(command);

            if (keyboardData == null)
            {
                return;
            }

            InputConstants.KEYBOARDINPUT keyboardInput = new InputConstants.KEYBOARDINPUT();
            keyboardInput.wScan       = keyboardData.data.wScan;
            keyboardInput.wVk         = keyboardData.data.wVk;
            keyboardInput.dwFlags     = keyboardData.data.dwFlags;
            keyboardInput.time        = keyboardData.data.time;
            keyboardInput.dwExtraInfo = IntPtr.Zero;

            // create input object
            InputConstants.INPUT input = new InputConstants.INPUT();
            input.type = InputConstants.KEYBOARD;
            input.ki   = keyboardInput;

            // send input to Windows
            InputConstants.INPUT[] inputArray = new InputConstants.INPUT[] { input };
            uint result = NativeMethods.SendInput(1, inputArray, System.Runtime.InteropServices.Marshal.SizeOf(input));
        }
Exemple #2
0
        public void ControlServerKeyboard(UInt16 vkCode, UInt16 scanCode, uint time, UInt32 flags)
        {
            ClientKeyboardCmd keyboardCmd = new ClientKeyboardCmd();

            keyboardCmd.data = new ClientKeyboardCmd.KeyboardData
            {
                wVk         = vkCode,
                wScan       = scanCode,
                time        = time,
                dwFlags     = flags,
                dwExtraInfo = 0
            };

            connectionMgr.BroadcastMessage(
                (int)CommandConst.MainCommandClient.ControlInfo,
                (int)CommandConst.SubCommandClient.Keyboard,
                keyboardCmd);
        }