use java 9 functions to list processes
This commit is contained in:
parent
43726ad2a9
commit
4bf65c6d7c
@ -54,8 +54,7 @@ public class SteamTimer extends TimerTask {
|
||||
|
||||
arma_running = SteamUtils.findProcess("arma3.exe")
|
||||
|| SteamUtils.findProcess("arma3_x64.exe")
|
||||
|| SteamUtils.findProcess("arma3battleye.exe")
|
||||
|| SteamUtils.findProcess("arma3launcher.exe");
|
||||
|| SteamUtils.findProcess("arma3battleye.exe");
|
||||
|
||||
logger.debug(arma_running ? "ArmA process found" : "ArmA process not found");
|
||||
|
||||
|
@ -1,29 +1,26 @@
|
||||
package de.mc8051.arma3launcher.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Created by gurkengewuerz.de on 23.03.2020.
|
||||
*/
|
||||
public class SteamUtils {
|
||||
|
||||
public static boolean findProcess(String findProcess) throws IOException {
|
||||
String filenameFilter = "/nh /fi \"Imagename eq "+findProcess+"\"";
|
||||
String tasksCmd = System.getenv("windir") +"/system32/tasklist.exe "+filenameFilter;
|
||||
private static final Logger logger = LogManager.getLogger(SteamUtils.class);
|
||||
|
||||
Process p = Runtime.getRuntime().exec(tasksCmd);
|
||||
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
|
||||
ArrayList<String> procs = new ArrayList<String>();
|
||||
String line = null;
|
||||
while ((line = input.readLine()) != null)
|
||||
procs.add(line);
|
||||
|
||||
input.close();
|
||||
|
||||
return procs.stream().anyMatch(row -> row.contains(findProcess));
|
||||
public static boolean findProcess(String findProcess) {
|
||||
Optional<ProcessHandle> p = ProcessHandle.allProcesses()
|
||||
.filter(processHandle -> processHandle.info().command().isPresent())
|
||||
.filter(process -> process.info().command().get().toLowerCase().endsWith(findProcess)).findFirst();
|
||||
if(p.isEmpty()) return false;
|
||||
logger.debug("Found process {}", findProcess);
|
||||
logger.debug(" PID {}", p.get().pid());
|
||||
logger.debug(" Name {}", p.get().info().command());
|
||||
logger.debug(" User {}", p.get().info().user());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ use64bitclient_desc=Startet Arma3 mit der f
|
||||
use_workshop=Versuche Workshop Inhalte zu nutzen
|
||||
use_workshop_desc=Bei großen Modspacks versucht der Client bereits heruntergeladene Workshop Inhalte, die gleich sind, zu kopieren um so den Download schneller zu gestalten
|
||||
warning=Warnung
|
||||
warning_workshop=Der Client versucht sein bestes die gleichen Dateien zu finden, jedoch kann es vorkommen das es nicht die identischen Dateien sind. Im Falle eines Fehlgeschlagenem Syncen mit dieser Option, solltest du sie deaktivieren und ohne diese Option erneut syncen. Ebenfalls könnte es zu kurzen Performance einbußen kommen.Der Client versucht sein bestes die gleichen Dateien zu finden, jedoch kann es vorkommen das es nicht die identischen Dateien sind. Im Falle eines fehlgeschlagenem Syncen mit dieser Option, solltest du sie deaktivieren und ohne diese Option erneut syncen. Ebenfalls könnte es zu kurzen Performance einbußen kommen.
|
||||
warning_workshop=Der Client versucht sein bestes die gleichen Dateien zu finden, jedoch kann es vorkommen das es nicht die identischen Dateien sind. Im Falle eines fehlgeschlagenem Syncen mit dieser Option, solltest du sie deaktivieren und ohne diese Option erneut syncen. Ebenfalls könnte es zu kurzen Performance einbußen kommen.
|
||||
window_desc=Ist diese Option aktiv, wird Arma 3 im Fenstermodus gestartet.
|
||||
world_desc=Hier kann eine Karte eingetragen werden, die geladen und in den Menüs als Hintergrund angezeigt werden soll (z.B. „altis“ oder „stratis“ – ohne Anführungszeichen!). Ist das Feld leer, wird keine Karte während des Startens geladen und der Start von Arma 3 ist entsprechend schneller.
|
||||
path_not_set=ArmA oder Mod Verzeichnis nicht gesetzt
|
||||
|
Loading…
Reference in New Issue
Block a user