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

Odpowiedz Nowy wątek
2014-12-17 00:34
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?

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

Pozdrawiam.

edytowany 5x, ostatnio: madzieq, 2014-12-17 00:38

Pozostało 580 znaków

2014-12-17 00:49
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.


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

2014-12-17 01:01
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?

Pozostało 580 znaków

2014-12-17 01:39
1

https://docs.python.org/3.4/library/os.html#os.kill ;]


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
edytowany 1x, ostatnio: Shalom, 2014-12-17 01:39

Pozostało 580 znaków

2014-12-17 12:53
0

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

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

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

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

działa na Linuxie.

A pod WINDOWS coś takiego:

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ąć?

edytowany 1x, ostatnio: madzieq, 2014-12-17 12:54

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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