private async void RefreshGrid() { while (true) { await Task.Run(() => { Thread.Sleep(5000); Application.Current.Dispatcher.Invoke(delegate { try { lock (ProcessesList) { List <ProcessListItem> itemsToRemove = ProcessesList.Where(proc => !ProcessesManager.Processes.ContainsKey(proc.ProcessID)).ToList(); foreach (ProcessListItem p in itemsToRemove) { ProcessesList.Remove(p); } List <ProcessListItem> itemsToAdd = ProcessesManager.Processes.Values.Where(proc => !ProcessesList.Contains(proc)).ToList(); foreach (ProcessListItem p in itemsToAdd) { ProcessesList.Add(p); } } } catch (Exception e) { MessageBox.Show(e.Message); } }); }); } }
// Private Methods (3) void beforeRequest(Session oSession) { var process = ProcessesList.FirstOrDefault(p => p.Pid == oSession.LocalProcessID && p.IsEnabled); if (process == null) { return; } var useDefaultServerInfo = string.IsNullOrWhiteSpace(process.ServerInfo.ServerIP); if (useDefaultServerInfo) { oSession["X-OverrideGateway"] = (DefaultServerInfo.ServerType == ServerType.Socks ? "socks=" : "") + DefaultServerInfo.ServerIP + ":" + DefaultServerInfo.ServerPort; } else { oSession["X-OverrideGateway"] = (process.ServerInfo.ServerType == ServerType.Socks ? "socks=" : "") + process.ServerInfo.ServerIP + ":" + process.ServerInfo.ServerPort; } RoutedConnectionsList.Add(new RoutedConnection { ProcessPid = oSession.LocalProcessID, Url = oSession.fullUrl, ProcessName = getProcessName(oSession), ProcessPath = process.Path }); }
public void RemoveProcess(int id) { Process toBeRemovedFromList = ProcessesList.FirstOrDefault(c => c.Id == id); Process toBeRemovedFromQueue = ProcessesQueue.FirstOrDefault(c => c.Id == id); if (toBeRemovedFromList != null) { ProcessesList.Remove(toBeRemovedFromList); foreach (var process in ProcessesList) { if (process.Id > id) { --process.Id; } } } if (toBeRemovedFromQueue != null) { ProcessesQueue.Remove(toBeRemovedFromQueue); foreach (var process in ProcessesQueue) { if (process.Id > id) { --process.Id; } } } }
private void EndTaskImpl(object o) { Application.Current.Dispatcher.Invoke(delegate { var process = Process.GetProcessById(SelectedProcess.Id); try { process.Kill(); ProcessesList.Remove(SelectedProcess); GetProcesses(); } catch (Win32Exception e) { MessageBox.Show(e.Message); } }); }
private void beforeRequest(Session oSession) { var process = ProcessesList.FirstOrDefault(p => p.Pid == oSession.LocalProcessID && p.IsEnabled); if (process == null) { return; } var processServerInfo = process.ServerInfo; var useDefaultServerInfo = string.IsNullOrWhiteSpace(processServerInfo.ServerIP); if (useDefaultServerInfo) { var serverType = DefaultServerInfo.ServerType == ServerType.Socks ? "socks=" : ""; oSession["X-OverrideGateway"] = $"{serverType}{DefaultServerInfo.ServerIP}:{DefaultServerInfo.ServerPort}"; if (!string.IsNullOrWhiteSpace(DefaultServerInfo.Username) && !string.IsNullOrWhiteSpace(DefaultServerInfo.Password)) { var userCredentials = $"{DefaultServerInfo.Username}:{DefaultServerInfo.Password}"; setBasicAuthenticationHeaders(oSession, userCredentials); } } else { var serverType = processServerInfo.ServerType == ServerType.Socks ? "socks=" : ""; oSession["X-OverrideGateway"] = $"{serverType}{processServerInfo.ServerIP}:{processServerInfo.ServerPort}"; if (!string.IsNullOrWhiteSpace(processServerInfo.Username) && !string.IsNullOrWhiteSpace(processServerInfo.Password)) { var userCredentials = $"{processServerInfo.Username}:{processServerInfo.Password}"; setBasicAuthenticationHeaders(oSession, userCredentials); } } RoutedConnectionsList.Add(new RoutedConnection { ProcessPid = oSession.LocalProcessID, Url = oSession.fullUrl, ProcessName = getProcessName(oSession), ProcessPath = process.Path }); }
private void KillProcess(object obj) { try { foreach (Process proc in Process.GetProcessesByName(SelectedProcess.ProcessName)) { proc.Kill(); } foreach (var itemToRemove in ProcessesList.Where(x => x.ProcessName == SelectedProcess.ProcessName).ToList()) { ProcessesList.Remove(itemToRemove); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private string getProcessName(Session oSession) { var process = ProcessesList.FirstOrDefault(x => x.Pid == oSession.LocalProcessID); return(process == null?oSession.LocalProcessID.ToString(CultureInfo.InvariantCulture) : process.Name); }
public ProcessesController(ProcessesList processes) { Processes = processes; }