public PositionedWindowViewModel(PositionedWindow rw)
        {
            Title                 = rw.Title;
            WindowHandle          = rw.WindowHandle.ToString();
            Position              = rw.Rectangle.ToString();
            ShowState             = rw.Placement.showCmd.ToString();
            Flags                 = rw.Placement.Flags.ToString();
            MoveUnderMouseCommand = new ReactiveCommand();

            MoveUnderMouseCommand
            .Do(_ =>
            {
                var p = new User32.Point();
                User32.GetCursorPos(ref p);
                User32.SetWindowPos(rw.WindowHandle,
                                    IntPtr.Zero,
                                    p.X,
                                    p.X,
                                    0,
                                    0,
                                    (int)(User32.SetWindowPosFlags.SHOWWINDOW | User32.SetWindowPosFlags.NOSIZE));
                //User32.MoveTo(rw.WindowHandle, new WindowRectangle(p.X, p.Y, 200, 200));
            }).Subscribe();
        }
 public static User32.Point GetMousePosition()
 {
     User32.Point p = new User32.Point();
     User32.GetCursorPos(ref p);
     return(p);
 }