private void OnDragOver(object sender, DragEventArgs e) { // get mouse position Point p = WindowsPosition.CorrectGetPosition(this.AssociatedObject); _last = p; //e.Effects = _effect; e.Handled = true; }
public RdpFile() { var winPosStr = new WindowsPosition(); WinPosStr = winPosStr; Password = string.Empty; ShellWorkingDirectory = string.Empty; AlternateShell = string.Empty; Domain = string.Empty; Username = string.Empty; AudioMode = 0; KeyboardHook = 0; FullAddress = string.Empty; SessionBpp = 0; }
void AssociatedObject_DragOver(object sender, DragEventArgs e) { //Debug.WriteLine("+++++" + _dataType.ToString()); Point p = WindowsPosition.CorrectGetPosition(this.AssociatedObject); if (_last.X != p.X || _last.Y != p.Y) { //Debug.WriteLine("Timer RESET " + DateTime.Now); _openTimer.Stop(); _openTimer.Start(); _last = p; } e.Effects = _effect; e.Handled = true; }
/// <summary> /// OMG this method is awful!!! but yagni /// </summary> /// <param name="callbackParam"></param> private void WindowPositionChangedHandler(CallWindowProcedureParam callbackParam) { ApplicationDisplayMetrics appMetrics = null; if (monitorApplications == null || !monitorApplications.ContainsKey(lastMetrics.Key)) { Log.Error("No definitions found for this resolution: {0}", lastMetrics.Key); return; } appMetrics = monitorApplications[lastMetrics.Key] .FirstOrDefault(row => row.Value.HWnd == callbackParam.hwnd) .Value; if (appMetrics == null) { var newAppWindow = SystemWindow.AllToplevelWindows .FirstOrDefault(row => row.Parent.HWnd.ToInt64() == 0 && !string.IsNullOrEmpty(row.Title) && !row.Title.Equals("Program Manager") && row.Visible && row.HWnd == callbackParam.hwnd); if (newAppWindow == null) { Log.Error("Can't find hwnd {0}", callbackParam.hwnd.ToInt64()); return; } ApplicationDisplayMetrics applicationDisplayMetric = null; AddOrUpdateWindow(lastMetrics.Key, newAppWindow, out applicationDisplayMetric); return; } WindowPlacement windowPlacement = appMetrics.WindowPlacement; WindowsPosition newPosition = (WindowsPosition)Marshal.PtrToStructure(callbackParam.lparam, typeof(WindowsPosition)); windowPlacement.NormalPosition.Left = newPosition.Left; windowPlacement.NormalPosition.Top = newPosition.Top; windowPlacement.NormalPosition.Right = newPosition.Left + newPosition.Width; windowPlacement.NormalPosition.Bottom = newPosition.Top + newPosition.Height; var key = appMetrics.Key; if (monitorApplications[lastMetrics.Key].ContainsKey(key)) { monitorApplications[lastMetrics.Key][appMetrics.Key].WindowPlacement = windowPlacement; } else { Log.Error("Hwnd {0} is not in list, we should capture", callbackParam.hwnd.ToInt64()); return; } Log.Info("WPCH - Capturing {0} at [{1}x{2}] size [{3}x{4}]", appMetrics, appMetrics.WindowPlacement.NormalPosition.Left, appMetrics.WindowPlacement.NormalPosition.Top, appMetrics.WindowPlacement.NormalPosition.Width, appMetrics.WindowPlacement.NormalPosition.Height ); }