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); }