Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2007 12:09:40

Sunny
От:
Зарегистрирован: 2007-06-15
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

Как мне при повторном запуске приложения (запускаю с помощью os.spawnv) закрыть запущенное ранее. У меня по нажатию кнопки в главном приложении должно загружаться приложение(wordpad), а при повторном её нажатии запускаться оно же но с новыми параметрами.



Офлайн

#2 Ноя. 19, 2007 17:59:00

setoy
От:
Зарегистрирован: 2006-07-20
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

Думаю, способ нет:( Мне тоже было нужно когда-то, не нашел



Офлайн

#3 Ноя. 19, 2007 18:31:26

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

os.spawn возвращает ID процесса и по этой айдишке старый процесс можно убивать.



Офлайн

#4 Ноя. 19, 2007 19:41:55

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

Есть способы:
- спомощью pywin32
- с помощью ctypes


import subprocess, ctypes, time

process = subprocess.Popen()

time.sleep(3)

ctypes.windll.kernel32.TerminateProcess(int(process._handle), -1)


или


import subprocess, ctypes, time

pid = subprocess.Popen().pid

time.sleep(3)

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


Можно ещё запускать утилиту taskkill или tskill - они доступны из командной строки, но это консольные приложение и не очень красиво, когда они вылетают по ходу работы гуевой программы.



Отредактировано (Ноя. 19, 2007 19:45:24)

Офлайн

#5 Ноя. 20, 2007 01:54:27

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

По поводу завершения процессов под Windows рекомендую посмотреть http://rsdn.ru/article/qna/baseserv/killproc.xml



Офлайн

#6 Ноя. 20, 2007 15:00:00

setoy
От:
Зарегистрирован: 2006-07-20
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

Большое спасибо, poltergeist & pyuser! Вот последний линк очень интересный :)
os.spawn - я нигде не вижу, что возвращает PID. Если дейвствително возвращает - тогда ОК



Офлайн

#7 Ноя. 20, 2007 18:13:05

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Как управлять запущенным приложением

Python Documentation
If mode is P_NOWAIT, this function returns the process ID of the new process



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version