private void Form1_Load(object sender, EventArgs e) { if (!this.ipe.available) { Application.Exit(); return; } RemoteControllerReceiver.RunWorkerAsync(); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { RemoteControllerReceiver.CancelAsync(); ipe.keyUp(InputEmu.VK_C); ipe.keyUp(InputEmu.VK_Z); ipe.keyUp(InputEmu.VK_X); ipe.keyUp(InputEmu.VK_P); ipe.keyUp(InputEmu.VK_UP); ipe.keyUp(InputEmu.VK_ESC); ipe.keyUp(InputEmu.VK_DOWN); ipe.keyUp(InputEmu.VK_LEFT); ipe.keyUp(InputEmu.VK_SHIFT); ipe.keyUp(InputEmu.VK_ENTER); ipe.keyUp(InputEmu.VK_RIGHT); ipe.forceStop = true; }
private void RemoteControllerReceiver_DoWork(object sender, DoWorkEventArgs e) { Socket receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint ip = new IPEndPoint(IPAddress.Any, 0x3389); receiver.Bind(ip); receiver.ReceiveTimeout = 1000; while (true) { SocketError code = SocketError.Success; receiver.Receive(OperateStruct.result, 0, 2, SocketFlags.None, out code); if (code == SocketError.Success) { OperateStruct.parse(); RemoteControllerReceiver.ReportProgress(20); } else if (code == SocketError.TimedOut) { OperateStruct.reset(); RemoteControllerReceiver.ReportProgress(54); } else { OperateStruct.reset(); RemoteControllerReceiver.ReportProgress(99); Console.WriteLine(code); } System.Threading.Thread.Sleep(2); if (RemoteControllerReceiver.CancellationPending) { receiver.Close(); receiver.Dispose(); return; } } }