Cześć,
jest w stanie ktoś mnie odesłać do źródła gdzie dowiem się jak poprawnie napisać program, który będzie wykonywał pewne operacje, jeżeli na przykład "notatnik" będzie włączony?
0
0
W zasadzie sprowadza się to do znalezienia listy obecnie działających procesów na bieżącej maszynie. JDK nie udostępnia takiego API - tak na szybko to widzę dwie opcje:
- w programie wywołasz natywny OS call za pomocą np JNA, który zwróci takie informacje
- z programu odpalisz zewnętrzne polecenie systemowe, które zwróci listę procesów (np.
ps
na linuchu) i będziesz parsować resultat
1
W linuxie możesz przeszukać listę procesów:
ps -ef | grep "notepad"
Na Windowsie możesz uzyć statycznej metody getRuntime() z klasy Runtime, przekazując ścieżkę do folderu z windowsem:
boolean isNotepadRunned(){
tring line;
String pidInfo ="";
Process process =Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = input.readLine()) != null) {
pidInfo+=line;
}
input.close();
return pidInfo.contains("notepad");
}
Wcześniej sprawdź w windowsowym task managerze nazwę procesu notatnika.
0
Widziałem podobne rozwiązanie albo to, lecz ten kod otwiera mi notatnik.