Sprawdzenie czy program jest uruchomiony

0

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1