Initial clean upload
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using QoSManager.Models;
|
||||
|
||||
namespace QoSManager.Views
|
||||
{
|
||||
public partial class ProcessSelectionWindow : Window
|
||||
{
|
||||
public List<ProcessInfo> Processes { get; set; }
|
||||
public string SelectedProcess { get; set; }
|
||||
|
||||
public ProcessSelectionWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
LoadProcesses();
|
||||
}
|
||||
|
||||
private void LoadProcesses()
|
||||
{
|
||||
Processes = new List<ProcessInfo>();
|
||||
|
||||
foreach (var process in Process.GetProcesses())
|
||||
{
|
||||
try
|
||||
{
|
||||
var processInfo = new ProcessInfo
|
||||
{
|
||||
Id = process.Id,
|
||||
Name = process.ProcessName,
|
||||
Path = process.MainModule?.FileName ?? "Unknown"
|
||||
};
|
||||
|
||||
Processes.Add(processInfo);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Skip processes we can't access
|
||||
}
|
||||
}
|
||||
|
||||
// Remove duplicates by path (keep only unique processes)
|
||||
Processes = Processes
|
||||
.GroupBy(p => p.Path)
|
||||
.Select(g => g.First())
|
||||
.ToList();
|
||||
|
||||
// Sort processes alphabetically by name
|
||||
Processes = Processes.OrderBy(p => p.Name, StringComparer.OrdinalIgnoreCase).ToList();
|
||||
ProcessesDataGrid.ItemsSource = Processes;
|
||||
}
|
||||
|
||||
private void SelectButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ProcessesDataGrid.SelectedItem is ProcessInfo selectedProcess)
|
||||
{
|
||||
SelectedProcess = selectedProcess.Path;
|
||||
DialogResult = true;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void CancelButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = false;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user