Пример #1
0
BOOL input_send_keyboard_pause_event(rdpInput* input)
{
	/* In ancient days, pause-down without control sent E1 1D 45 E1 9D C5,
	 * and pause-up sent nothing.  However, reverse engineering mstsc shows
	 * it sending the following sequence:
	 */

	/* Control down (0x1D) */
	if (!input_send_keyboard_event(input, 0,
		RDP_SCANCODE_CODE(RDP_SCANCODE_LCONTROL)))
		return FALSE;

	/* Numlock down (0x45) */
	if (!input_send_keyboard_event(input, 0,
		RDP_SCANCODE_CODE(RDP_SCANCODE_NUMLOCK)))
		return FALSE;

	/* Control up (0x1D) */
	if (!input_send_keyboard_event(input, KBD_FLAGS_RELEASE,
		RDP_SCANCODE_CODE(RDP_SCANCODE_LCONTROL)))
		return FALSE;

	/* Numlock up (0x45) */
	return input_send_keyboard_event(input, KBD_FLAGS_RELEASE,
		RDP_SCANCODE_CODE(RDP_SCANCODE_NUMLOCK));
}
Пример #2
0
void input_send_focus_in_event(rdpInput* input, UINT16 toggleStates)
{
	/* send a tab up like mstsc.exe */
	input_send_keyboard_event(input, KBD_FLAGS_RELEASE, 0x0f);

	/* send the toggle key states */
	input_send_synchronize_event(input, (toggleStates & 0x1F));

	/* send another tab up like mstsc.exe */
	input_send_keyboard_event(input, KBD_FLAGS_RELEASE, 0x0f);
}
Пример #3
0
void input_send_focus_in_event(rdpInput* input, UINT16 toggleStates, UINT16 x, UINT16 y)
{
	/* send a tab up like mstsc.exe */
	input_send_keyboard_event(input, KBD_FLAGS_RELEASE, 0x0f);

	/* send the toggle key states */
	input_send_synchronize_event(input, (toggleStates & 0x1F));

	/* send another tab up like mstsc.exe */
	input_send_keyboard_event(input, KBD_FLAGS_RELEASE, 0x0f);

	/* finish with a mouse pointer position like mstsc.exe */
	input_send_extended_mouse_event(input, PTR_FLAGS_MOVE, x, y);
}