Wyjście z podprogramu wywołanego procedurą .call

Wyjście z podprogramu wywołanego procedurą .call
madzieq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Witam, udało mi się bezpośrednio otworzyć podprogram funkcją call (kod poniżej)
Po wykonaniu pewnych określonych instrukcji, chcialabym aby podprogram się zamknął - czy ktoś wie jaka funkcja za to odpowiada?

Kopiuj
import subprocess
path = r"C:\Users\Magda\Desktop\Programy\project1.exe"
subprocess.call([path])

Pozdrawiam.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Tzn chcesz ten proces teraz ubić? To już nie jest taka prosta sprawa bo to jest tak jak z ubijaniem dowolnego innego działającego procesu.

madzieq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Tak - po uruchomeniu skryptu, przy użyciu metody .call otwiera mi się aplikacja stworzona w Delphi - ja sobie coś tam w niej robię (m.in. wysyłam różne dane do pliku tekstowego) i chciałabym, żeby np. w momencie, gdy w pliku tekstowym znajduje się jakaś wartość, to żeby aplikacja wywołana wcześniej funkcją .call się zamknęła (bo obecnie kolokwialnie rzecz ujmując muszę ją zamykać klikając "krzyżyk").

Rozumiem, że to nie jest już taka prosta sprawa?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
madzieq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Aha, czyli jednak można to łatwo zamknąć? ;) A możesz mi podpowiedzieć jak tą aplikację, wywołaną tak:

Kopiuj
path = "C:\Users\Magda\Desktop\Programy\project1.exe"
subprocess.call([path])

Mogę zamknąć? Bo znalazłam, że:

Kopiuj
os.kill(process.pid, signal.SIGKILL)

działa na Linuxie.

A pod WINDOWS coś takiego:

Kopiuj
import ctypes
PROCESS_TERMINATE = 1
handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, theprocess.pid)
ctypes.windll.kernel32.TerminateProcess(handle, -1)
ctypes.windll.kernel32.CloseHandle(handle)

Tylko nie wiem, czy theprocess.pid to jest proces, który chcę zamknąć?

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.