public void Start() { Task.Run(async() => { while (true) { try { var foregroundProcess = ProcessesHelper.GetForegroundProcess(); if (foregroundProcess == null) { continue; } if (_xboxController.IsLeftShoulderPressed && _xboxController.LeftTrigger > 0 && _xboxController.IsRightShoulderPressed && _xboxController.RightTrigger > 0 && _xboxController.IsAPressed) { foreach (var gameProcess in _gameProcesses) { if (foregroundProcess.ProcessName == gameProcess) { Console.WriteLine($"========================================"); Console.WriteLine($"Foreground process : {foregroundProcess.ProcessName}"); ProcessesHelper.Stop(gameProcess); Console.WriteLine($"{gameProcess} killed"); await Task.Delay(1000); var oldDisplay = _displayService.GetCurrent(); var newDisplay = _displayService.GetHigherDisplay(); if (oldDisplay.Width < newDisplay.Width) { Console.WriteLine($"old display : {oldDisplay.Width} x {oldDisplay.Height}"); _displayService.SetCurrent(newDisplay); Console.WriteLine($"new display : {newDisplay.Width} x {newDisplay.Height}"); } } } } } catch (Exception ex) { } await Task.Delay(500); } }); Task.Run(() => { XboxController.StartPolling(); }); }
protected override string OnRequest(string requestString) { try { var requestStringHeader = requestString.Substring(0, Math.Min(100, requestString.Length)).ToUpper(); //index if (requestStringHeader.StartsWith("GET / ")) { return(HtmlResult(GetIndexContent())); } //additional files if (requestStringHeader.StartsWith("GET /")) { var ts = requestString.Split(new char[] { ' ' }); var path = ts[1].Substring(1); return(CreateFileResult(path)); } //commands if (requestStringHeader.StartsWith("POST /DISALLOWGAMES ")) { MainService.Instance.ControlService.DisableGames(); return(RedirectResult("/")); } if (requestStringHeader.StartsWith("POST /ALLOWGAMES ")) { MainService.Instance.ControlService.EnableGames(); return(RedirectResult("/")); } if (requestStringHeader.StartsWith("POST /UPDATE ")) { var requestParams = GetParametersFromPost(requestString); MainService.Instance.ControlService.UpdateTimeCounter(int.Parse(requestParams["amount"])); return(RedirectResult("/")); } if (requestStringHeader.StartsWith("POST /GETPROCESSES ")) { var processes = ProcessesHelper.GetProcesses(); return(JsonResult(processes.Select(t => new { name = t.FileName, path = t.FilePath, user = t.UserName } ).ToList())); } //default return(HtmlResult("", HttpStatusCode.NotFound)); } catch (Exception ex) { return(HtmlResult(ex.ToString(), HttpStatusCode.InternalServerError)); } }
private static async Task RebootSteamAsync() { var processes = ProcessesHelper.GetProcesses() .Where(obj => obj.ProcessName.ContainsIgnoreCase("steam") && !obj.ProcessName.Contains(Assembly.GetExecutingAssembly().GetName().Name)); foreach (var process in processes) { try { process.Kill(); } catch (Exception) { // IGNORE } } await Task.Delay(TimeHelper.FromSecondsToMilliseconds(2)); ProcessesHelper.Start($@"{steamDirectory}\steam.exe"); }
//关掉所有nginx的进程,格式必须这样,有空格存在 taskkill /IM nginx.exe /F /// <summary> /// 启动服务 /// </summary> /// <returns></returns> public void StartService() { try { if (ProcessesHelper.IsCheckProcesses(_nginxFileName)) { LogHelper.WriteLog("nginx进程已经启动过了"); } else { var sinfo = new ProcessStartInfo { FileName = _nginxFilePath, Verb = "runas", WorkingDirectory = _workingDirectory, Arguments = _arguments }; #if DEBUG sinfo.UseShellExecute = true; sinfo.CreateNoWindow = false; #else sinfo.UseShellExecute = false; #endif using (var process = Process.Start(sinfo)) { //process?.WaitForExit(); _processId = process.Id; } } } catch (Exception e) { LogHelper.WriteLog(e.Message); MessageBox.Show(e.Message); } }
/// <summary> /// 关闭nginx所有进程 /// </summary> /// <returns></returns> public void StopService() { ProcessesHelper.KillProcesses(_nginxFileName); }
void CheckProcesses() { var processes = ProcessesHelper.GetProcesses(); }
public void UpdateProcessInObservedProcessesList(string processName, TimeSpan allowedTime) { this.processesListService.ChangeAllowedTimeForWatchedProcess(ProcessesHelper.GetRealProcessName(processName), allowedTime); }
public void RemoveProcessFromObservedProcessesList(string processName) { this.processesListService.RemoveWatchedProcess(ProcessesHelper.GetRealProcessName(processName)); }
//public IEnumerable<Process> GetAllRunningProcesses() { // return Process.GetProcesses(); //} public void AddProcessToObservedProcessesList(string processName, TimeSpan allowedTime) { this.processesListService.AddWatchedProcess(ProcessesHelper.GetRealProcessName(processName), allowedTime); }
public bool KillProcess(string name) { return(ProcessesHelper.KillProcess(name)); }