Sprawdzenie czy program jest uruchomiony

Sprawdzenie czy program jest uruchomiony
GU
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Postów:94
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?

damianem
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 miesiące
  • Postów:205
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
MF
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Kraków
  • Postów:58
1

W linuxie możesz przeszukać listę procesów:

Kopiuj
ps -ef | grep "notepad"

Na Windowsie możesz uzyć statycznej metody getRuntime() z klasy Runtime, przekazując ścieżkę do folderu z windowsem:

Kopiuj
 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.


edytowany 2x, ostatnio: mfabjanski
GU
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 lata
  • Postów:94
0

Widziałem podobne rozwiązanie albo to, lecz ten kod otwiera mi notatnik.

edytowany 1x, ostatnio: guuren

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.