The rest of the client script (didn't fit in 1 post):

Code:
	if key = %KEY_0%
	{
        	ControlSend,, 0, ahk_id %target_window%
	}
	else
	if key = %KEY_1%
	{
        	ControlSend,, 1, ahk_id %target_window%
	}
	else
	if key = %KEY_2%
	{
        	ControlSend,, 2, ahk_id %target_window%
	}
	else
	if key = %KEY_3%
	{
        	ControlSend,, 3, ahk_id %target_window%
	}
	else
	if key = %KEY_4%
	{
        	ControlSend,, 4, ahk_id %target_window%
	}
	else
	if key = %KEY_5%
	{
        	ControlSend,, 5, ahk_id %target_window%
	}
	else
	if key = %KEY_6%
	{
        	ControlSend,, 6, ahk_id %target_window%
	}
	else
	if key = %KEY_7%
	{
        	ControlSend,, 7, ahk_id %target_window%
	}
	else
	if key = %KEY_8%
	{
        	ControlSend,, 8, ahk_id %target_window%
	}
	else
	if key = %KEY_9%
	{
        	ControlSend,, 9, ahk_id %target_window%
	}
	else
	if key = %KEY_A%
	{
        	ControlSend,, a, ahk_id %target_window%
	}
	else
	if key = %KEY_B%
	{
        	ControlSend,, b, ahk_id %target_window%
	}
	else
	if key = %KEY_C%
	{
        	ControlSend,, c, ahk_id %target_window%
	}
	else
	if key = %KEY_D%
	{
        	ControlSend,, d, ahk_id %target_window%
	}
	else
	if key = %KEY_E%
	{
        	ControlSend,, e, ahk_id %target_window%
	}
	else
	if key = %KEY_F%
	{
        	ControlSend,, f, ahk_id %target_window%
	}
	else
	if key = %KEY_G%
	{
        	ControlSend,, g, ahk_id %target_window%
	}
	else
	if key = %KEY_H%
	{
        	ControlSend,, h, ahk_id %target_window%
	}
	else
	if key = %KEY_I%
	{
        	ControlSend,, i, ahk_id %target_window%
	}
	else
	if key = %KEY_J%
	{
        	ControlSend,, j, ahk_id %target_window%
	}
	else
	if key = %KEY_K%
	{
        	ControlSend,, k, ahk_id %target_window%
	}
	else
	if key = %KEY_L%
	{
        	ControlSend,, l, ahk_id %target_window%
	}
	else
	if key = %KEY_M%
	{
        	ControlSend,, m, ahk_id %target_window%
	}
	else
	if key = %KEY_N%
	{
        	ControlSend,, n, ahk_id %target_window%
	}
	else
	if key = %KEY_O%
	{
        	ControlSend,, o, ahk_id %target_window%
	}
	else
	if key = %KEY_P%
	{
        	ControlSend,, p, ahk_id %target_window%
	}
	else
	if key = %KEY_Q%
	{
        	ControlSend,, q, ahk_id %target_window%
	}
	else
	if key = %KEY_R%
	{
        	ControlSend,, r, ahk_id %target_window%
	}
	else
	if key = %KEY_S%
	{
        	ControlSend,, s, ahk_id %target_window%
	}
	else
	if key = %KEY_T%
	{
        	ControlSend,, t, ahk_id %target_window%
	}
	else
	if key = %KEY_U%
	{
        	ControlSend,, u, ahk_id %target_window%
	}
	else
	if key = %KEY_V%
	{
        	ControlSend,, v, ahk_id %target_window%
	}
	else
	if key = %KEY_W%
	{
        	ControlSend,, w, ahk_id %target_window%
	}
	else
	if key = %KEY_X%
	{
        	ControlSend,, x, ahk_id %target_window%
	}
	else
	if key = %KEY_Y%
	{
        	ControlSend,, y, ahk_id %target_window%
	}
	else
	if key = %KEY_Z%
	{
        	ControlSend,, z, ahk_id %target_window%
	}

} ; END OF InternalPressKey()


guiclose:
ExitSub:  ; This subroutine is called automatically when the script exits for any reason.
; MSDN: "Any sockets open when WSACleanup is called are reset and automatically
; deallocated as if closesocket was called."
DllCall("Ws2_32\WSACleanup")
ExitApp