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")
|
arma_running = SteamUtils.findProcess("arma3.exe")
|
||||||
|| SteamUtils.findProcess("arma3_x64.exe")
|
|| SteamUtils.findProcess("arma3_x64.exe")
|
||||||
|| SteamUtils.findProcess("arma3battleye.exe")
|
|| SteamUtils.findProcess("arma3battleye.exe");
|
||||||
|| SteamUtils.findProcess("arma3launcher.exe");
|
|
||||||
|
|
||||||
logger.debug(arma_running ? "ArmA process found" : "ArmA process not found");
|
logger.debug(arma_running ? "ArmA process found" : "ArmA process not found");
|
||||||
|
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
package de.mc8051.arma3launcher.utils;
|
package de.mc8051.arma3launcher.utils;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import java.io.IOException;
|
import org.apache.logging.log4j.Logger;
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.util.ArrayList;
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by gurkengewuerz.de on 23.03.2020.
|
* Created by gurkengewuerz.de on 23.03.2020.
|
||||||
*/
|
*/
|
||||||
public class SteamUtils {
|
public class SteamUtils {
|
||||||
|
|
||||||
public static boolean findProcess(String findProcess) throws IOException {
|
private static final Logger logger = LogManager.getLogger(SteamUtils.class);
|
||||||
String filenameFilter = "/nh /fi \"Imagename eq "+findProcess+"\"";
|
|
||||||
String tasksCmd = System.getenv("windir") +"/system32/tasklist.exe "+filenameFilter;
|
|
||||||
|
|
||||||
Process p = Runtime.getRuntime().exec(tasksCmd);
|
public static boolean findProcess(String findProcess) {
|
||||||
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
Optional<ProcessHandle> p = ProcessHandle.allProcesses()
|
||||||
|
.filter(processHandle -> processHandle.info().command().isPresent())
|
||||||
ArrayList<String> procs = new ArrayList<String>();
|
.filter(process -> process.info().command().get().toLowerCase().endsWith(findProcess)).findFirst();
|
||||||
String line = null;
|
if(p.isEmpty()) return false;
|
||||||
while ((line = input.readLine()) != null)
|
logger.debug("Found process {}", findProcess);
|
||||||
procs.add(line);
|
logger.debug(" PID {}", p.get().pid());
|
||||||
|
logger.debug(" Name {}", p.get().info().command());
|
||||||
input.close();
|
logger.debug(" User {}", p.get().info().user());
|
||||||
|
return true;
|
||||||
return procs.stream().anyMatch(row -> row.contains(findProcess));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ use64bitclient_desc=Startet Arma3 mit der f
|
|||||||
use_workshop=Versuche Workshop Inhalte zu nutzen
|
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
|
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=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.
|
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.
|
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
|
path_not_set=ArmA oder Mod Verzeichnis nicht gesetzt
|
||||||
|
Loading…
Reference in New Issue
Block a user