Ejemplo n.º 1
0
        public bool ShowDialog(IDictionary <int, object> processes, out object selectedProcess)
        {
            Processes.AddRange(processes.Select(p => new RunningApplication(p)));

            var result = View.ShowDialog() == true;

            selectedProcess = SelectedProcess != null && result
                ? SelectedProcess.ComObject
                : null;

            return(result);
        }
Ejemplo n.º 2
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var process   = Process.GetCurrentProcess();
            var processes = Process.GetProcesses()
                            .Where(x => x.MainWindowHandle.ToInt32() != 0)
                            .Where(x => x.Id != process.Id)
                            .OrderBy(x => x.ProcessName)
                            .ToList();

            Processes.Clear();
            Processes.AddRange(processes);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Refresh the processes.
        /// </summary>
        private void OnRefresh()
        {
            Processes.Clear();

            Processes.AddRange(Process.GetProcessesByName(ProcessName)
                               .ToList());

            if (Processes.Count > 0)
            {
                return;
            }

            Processes.AddRange(Process.GetProcesses()
                               .Where(x => !string.IsNullOrWhiteSpace(x.MainWindowTitle))
                               .ToList());
        }
Ejemplo n.º 4
0
 public Pipeline AddToBegin(IProcess process)
 {
     RWLock.EnterWriteLock();
     try
     {
         var tmp = Processes.ToList();
         Processes.Clear();
         Processes.Add(process);
         Processes.AddRange(tmp);
         TryImportSpecialCases(process);
     }
     finally
     {
         RWLock.ExitWriteLock();
     }
     return(this);
 }
Ejemplo n.º 5
0
        /// <summary>,
        /// Refresh the processes.
        /// </summary>
        private void OnRefresh()
        {
            Processes.Clear();

            Processes.AddRange(Process.GetProcesses()
                               .Where(x =>
            {
                var isNotEmpty = !string.IsNullOrWhiteSpace(x.MainWindowTitle);

                try
                {
                    var hasFFXIMain = (from ProcessModule m in x.Modules where m.ModuleName.ToLower() == "ffximain.dll" select m).FirstOrDefault() != null;
                    return(isNotEmpty && hasFFXIMain);
                }
                catch
                {
                    return(false);
                }

                return(isNotEmpty);
            })
                               .ToList());
        }