示例#1
0
        private void OnStartup(object sender, StartupEventArgs e)
        {
            var config         = new ConfigFactory().Config();
            var osProcesses    = new SystemProcesses(new NullLogger());
            var productCode    = GetProductCode();
            var installerPath  = new InstallerPath(productCode, config);
            var repairLauncher = new RepairLauncher(osProcesses, productCode);
            var vm             = new MainWindowViewModel(config, repairLauncher, osProcesses, installerPath);
            var window         = new MainWindow(vm);

            window.Show();
        }
        private List <SystemProcesses> GetProcessInformation()
        {
            var processInformation = new List <SystemProcesses>();
            var processKil         = Process.GetProcesses();

            foreach (var process in processKil)
            {
                try

                {
                    if (process.HasExited)
                    {
                        continue;
                    }
                    var name      = process.ProcessName;
                    var fullPath  = process.MainModule.FileName;
                    var icon      = GetIconForProcess(fullPath);
                    var processId = process.Id;
                    var handles   = process.HandleCount;
                    var threads   = process.Threads.Count;
                    var memory    = process.WorkingSet64;
                    var wallTime  = DateTime.Now - process.StartTime;
                    if (process.HasExited)
                    {
                        wallTime = process.ExitTime - process.StartTime;
                    }
                    var procTime = process.TotalProcessorTime;
                    var cpuUsage = 100 * procTime.TotalMilliseconds / wallTime.TotalMilliseconds;
                    var sysP     = new SystemProcesses
                    {
                        Id       = processId,
                        Path     = fullPath,
                        Name     = name,
                        Icon     = icon,
                        RamUsage = memory,
                        CpuUsage = cpuUsage,
                        Threads  = threads,
                        Handles  = handles
                    };
                    processInformation.Add(sysP);
                }
                catch (Exception)
                {
                    //who cares
                }
            }
            return(processInformation);
        }