zum Beispiel mitpublic void instructSomeWork(String[] foreigner) throws IOException, InterruptedException {
Process p = Runtime.getRuntime().exec(foreigner);
PrintStream ps = new PrintStream(p.getOutputStream());
System.setOut(ps);
p.waitFor();
}
auf.obj.instructSomeWork(new String[]{"notepad.exe"});
guni hat gesagt.:hmm ...
meine setup.exe erzeugt ja wie gesagt einen neuen Prozess und beendet sich dann.
guni hat gesagt.:mein ziel ist nach wie vor
guni hat gesagt.:den neuen prozess "abzufangen" und das "wait" um diesen prozess zu erweitern.
guni hat gesagt.:gehofft, dass ich einen Output erhalte wo ich irgendwas mit "starting new process with PID ..." abfangen könnt und irgendwie darauf reagieren könnte ..
guni hat gesagt.:Gibt es irgendwelche anderen Vorschläge?!
public void output() throws IOException {
Process p = Runtime.getRuntime().exec(new String[]{"ps.exe","-A"});
System.setOut(new PrintStream(p.getOutputStream()));
}
Process p = Runtime.getRuntime().exec(new String[]{"wmic","process","list"});
BufferedReader pin = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = pin.readLine()) != null){
System.out.println("line: " + line);
}
pin.close();
Process p = Runtime.getRuntime().exec(new String[]{"wmic","process","list"});
BufferedReader pin = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = pin.readLine()) != null){
System.out.println("line: " + line);
}
pin.close();
File consoledmp = File.createTempFile("console",".dmp");
Process p = Runtime.getRuntime().exec(new String[]{"wmic","process","list","2>&1>",consoledmp.toString()});
BufferedReader in = new BufferedReader(new FileReader(consoledmp));
String line = null;
while ((line = in.readLine()) != null)
System.out.println("line: " + line);
in.close();
Runtime.getRuntime().exec("wmic process list > " + consoledmp.getAbsolutePath() + " 2>&1");
File consoledmp = File.createTempFile("console",".dmp");
Runtime.getRuntime().exec("cmd /c start wmic /OUTPUT:" + consoledmp.getAbsolutePath() + " process list status").waitFor();
Thread.currentThread().sleep(1500);
BufferedReader inStream = new BufferedReader(new FileReader(consoledmp));
String line = null;
while ((line = inStream.readLine()) != null)
System.out.println("line: " + line);
inStream.close();