Esempio n. 1
0
        private void Integrate(IProcessInstanceViewModel instance)
        {
            var handle = instance.ProcessMainWindowHandle;

            TakeWindowOwnership(handle);
            SetWindowTitleBar(instance);
        }
Esempio n. 2
0
        public void AddProcessInstance(IProcessInstanceViewModel instance)
        {
            var subscription = instance.ProcessTerminated.ObserveOnDispatcher().Subscribe(@event =>
            {
                _processInstances.Remove(instance);
            });

            _processInstances.Add(instance);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private bool GetCurrentEventInstance(IntPtr windowHandle, out IProcessInstanceViewModel instance)
        {
            instance = _integratedInstances.SingleOrDefault(i => i.ProcessMainWindowHandle == windowHandle);

            return(instance != null);
        }
Esempio n. 5
0
 private void RestoreInstanceWindowCommandAction(IProcessInstanceViewModel instance)
 {
     instance.IsMinimized = false;
     User32Methods.ShowWindow(instance.ProcessMainWindowHandle, ShowWindowCommands.SW_SHOW);
     User32Methods.ShowWindow(instance.ProcessMainWindowHandle, ShowWindowCommands.SW_RESTORE);
 }