Пример #1
0
        public static void mouse_input_handler(Global.MTransferStruct transfer_struct)
        {
            Global.INPUT[] inp = new Global.INPUT[1];
            inp[0].type = (int)Global.InputType.MOUSE;
            Global.MOUSEINPUT ms = new Global.MOUSEINPUT();
            switch (transfer_struct.Flag)
            {
            case 512:
                ms.dx      = (int)Math.Round(transfer_struct.XCoord * 65536, 0);
                ms.dy      = (int)Math.Round(transfer_struct.YCoord * 65536, 0);
                ms.dwFlags = 0x0001 | 0x8000;
                break;

            case 522:
                ms.dwFlags   = 0x0800;
                ms.mouseData = transfer_struct.Data;
                break;

            default:
                ms.dwFlags = (int)System.Math.Pow(2, Array.IndexOf(Powers, transfer_struct.Flag) + 1);
                break;
            }
            inp[0].inputUnion.mi = ms;
            SendInput(1, inp, Marshal.SizeOf(inp[0]));
        }
Пример #2
0
        public static void control_invoker(TcpClient client)
        {
            client.Client.ReceiveTimeout = 5000;
            NetworkStream net_stream = client.GetStream();

            try
            {
                while (true)
                {
                    byte[] buffer = new byte[1024];
                    net_stream.Read(buffer, 0, 1024);
                    string   rcv_msg = Encoding.UTF8.GetString(buffer);
                    string[] data    = rcv_msg.Split(' ');
                    if (data[0] == "m")
                    {
                        Global.MTransferStruct msg = new Global.MTransferStruct(
                            Convert.ToDouble(data[1]),
                            Convert.ToDouble(data[2]),
                            Convert.ToInt32(data[3]),
                            Convert.ToInt32(data[4])
                            );
                        Mouse_Buffer.Enqueue(msg);
                        if (Mouse_Buffer.Count == 1)
                        {
                            Thread tmp_thr = new Thread(mouse_buffer_exec);
                            tmp_thr.Start();
                        }
                    }
                    if (data[0] == "k")
                    {
                        Global.KTransferStruct msg = new Global.KTransferStruct(
                            Convert.ToInt16(data[1]),
                            Convert.ToInt32(data[2]));
                        Keyboard_Buffer.Enqueue(msg);
                        if (Keyboard_Buffer.Count == 1)
                        {
                            Thread tmp_thr = new Thread(keyboard_buffer_exec);
                            tmp_thr.Start();
                        }
                    }
                }
            }
            catch (SocketException ex) { }
            catch (Exception ex) { }
        }