Program.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Drawing;
  3. using System.Reactive.Linq;
  4. using System.Windows.Forms;
  5. namespace RxMouseServer
  6. {
  7. partial class Program
  8. {
  9. [STAThread]
  10. static void Main(string[] args)
  11. {
  12. Console.WriteLine("Server");
  13. int port;
  14. ParseArgs(args, out port);
  15. var observer = Remoting(port);
  16. var frm = new Form();
  17. frm.Load += (o, e) =>
  18. {
  19. var g = frm.CreateGraphics();
  20. var mme = (from mm in Observable.FromEventPattern<MouseEventArgs>(frm, "MouseMove")
  21. select mm.EventArgs.Location)
  22. .DistinctUntilChanged()
  23. .Do(pt =>
  24. {
  25. g.DrawEllipse(Pens.Red, pt.X, pt.Y, 1, 1);
  26. });
  27. mme.Subscribe(observer);
  28. };
  29. Application.Run(frm);
  30. }
  31. static void ParseArgs(string[] args, out int port)
  32. {
  33. port = 9090;
  34. if (args.Length == 1)
  35. {
  36. port = int.Parse(args[0]);
  37. }
  38. }
  39. }
  40. }