/// <summary> /// 创建一个指定文件地址的进程,同时会允许指定一个进程的优先级。 /// </summary> /// <param name="executeFileUrl">需要创建进程的一个Windows可执行文件。</param> /// <param name="priority">需要被创建的进程的优先级。</param> /// <returns>该方法会返回这个进程的System.Diagnostics.Process实例。</returns> /// <exception cref="FileNotFoundException">当指定的Windows可执行文件找不到时,则会抛出这个异常。</exception> public static Process CreateProcess(string executeFileUrl, EProcessPriority priority) { Process retval; if (!FileOperator.FileExists(executeFileUrl)) { throw new FileNotFoundException("指定的Windows可执行文件不存在!"); } retval = Process.Start(executeFileUrl); retval.PriorityClass = (ProcessPriorityClass)priority; return(retval); }
/// <summary> /// 更改进程的优先级,但是这个操作可能存在风险,更改成功与否,都会返回一个Boolean值。 /// </summary> /// <param name="processName">需要被修改优先级的进程的映像名称。</param> /// <param name="priority">需要被修改的进程优先级。</param> /// <returns>如果这个方法的操作成功则为true,反之为false。</returns> public static bool ChangeProcessPriority(string processName, EProcessPriority priority) { bool retval = true; Process[] ps = Process.GetProcesses(); foreach (Process p in ps) { if (p.ProcessName == processName) { try { p.PriorityClass = (ProcessPriorityClass)priority; } catch { retval = false; } } } return(retval); }
/// <summary> /// 创建一个指定文件地址的进程,同时会允许指定一个进程的优先级。 /// </summary> /// <param name="executeFileUrl">需要创建进程的一个Windows可执行文件。</param> /// <param name="priority">需要被创建的进程的优先级。</param> /// <returns>该方法会返回这个进程的System.Diagnostics.Process实例。</returns> /// <exception cref="FileNotFoundException">当指定的Windows可执行文件找不到时,则会抛出这个异常。</exception> public static Process CreateProcess(string executeFileUrl, EProcessPriority priority) { Process retval = new Process(); bool condition = !FileOperator.FileExists(executeFileUrl) && !FileOperator.DirectoryExists(executeFileUrl); if (condition) { throw new FileNotFoundException("指定的Windows可执行文件不存在!"); } retval = Process.Start(executeFileUrl); try { retval.PriorityClass = (ProcessPriorityClass)priority; } catch (NullReferenceException exception) { #if DEBUG Console.WriteLine("Throwed Exception => \n{0}\nTime => {1}", exception.ToString(), DateTime.Now.ToString()); #endif } return(retval); }
/// <summary> /// 创建一个拥有指定优先级的进程,在创建这个进程会指定一些命令行参数,以及权限和域。 /// </summary> /// <param name="executeFileUrl">需要创建进程的一个Windows可执行文件。</param> /// <param name="arguments">启动该进程时传递的命令行实参。</param> /// <param name="userName">启动进程时使用的用户名。</param> /// <param name="password">一个SecureString实例,它包含启动进程时要使用的密码。</param> /// <param name="domian">启动进程时要使用的域。</param> /// <param name="priority">需要被创建的进程的优先级。</param> /// <returns>该方法会返回这个进程的System.Diagnostics.Process实例。</returns> /// <exception cref="FileNotFoundException">当指定的Windows可执行文件找不到时,则会抛出这个异常。</exception> public static Process CreateProcess(string executeFileUrl, string arguments, string userName, SecureString password, string domian, EProcessPriority priority) { Process retval; if (!FileOperator.FileExists(executeFileUrl)) { throw new FileNotFoundException("指定的Windows可执行文件不存在!"); } retval = Process.Start(executeFileUrl, arguments, userName, password, domian); retval.PriorityClass = (ProcessPriorityClass)priority; return(retval); }