private void Integrate(IProcessInstanceViewModel instance) { var handle = instance.ProcessMainWindowHandle; TakeWindowOwnership(handle); SetWindowTitleBar(instance); }
public void AddProcessInstance(IProcessInstanceViewModel instance) { var subscription = instance.ProcessTerminated.ObserveOnDispatcher().Subscribe(@event => { _processInstances.Remove(instance); }); _processInstances.Add(instance); }
private void SetWindowTitleBar(IProcessInstanceViewModel instance) { var icon = Resources.dTermIcon.Handle; var handle = instance.ProcessMainWindowHandle; /* * var wndTitle = Win32Api.GetWindowTitle(handle); * var cleanTitle = Win32Api.GetWindowTitleClean(handle); * var newWndTitle = $"[PID: {instance.ProcessId}] {cleanTitle}"; * * if (!wndTitle.ToLower().Equals(newWndTitle.ToLower())) * { * User32Methods.SetWindowText(handle, newWndTitle); * } */ Win32Api.SetWindowIcons(handle, icon); }
private bool GetCurrentEventInstance(IntPtr windowHandle, out IProcessInstanceViewModel instance) { instance = _integratedInstances.SingleOrDefault(i => i.ProcessMainWindowHandle == windowHandle); return(instance != null); }
private void RestoreInstanceWindowCommandAction(IProcessInstanceViewModel instance) { instance.IsMinimized = false; User32Methods.ShowWindow(instance.ProcessMainWindowHandle, ShowWindowCommands.SW_SHOW); User32Methods.ShowWindow(instance.ProcessMainWindowHandle, ShowWindowCommands.SW_RESTORE); }