Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2011 04:04:10

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

Доброго времени суток!
Я использую bottle, вместо традиционного ГУИ интерфейса и перевожу всё это в py2exe.
Мне нужно, чтоб при выходе из браузера убивался процесс который вызывает екзешник py2exe ( он у меня называется first.exe)
Для этого использую вот такую ф-цию:

import win32api 
import win32pdhutil
import win32con
def killProcName(procname):
"""Kill a running process by name. Kills first process with the given name."""
try:
win32pdhutil.GetPerformanceAttributes("Process", "ID Process", procname)
except:
pass
pids = win32pdhutil.FindPerformanceAttributesByName(procname)
# If _my_ pid in there, remove it!
try:
pids.remove(win32api.GetCurrentProcessId())
except ValueError:
pass
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, pids[0])
win32api.TerminateProcess(handle, 0)
win32api.CloseHandle(handle)
print "Kill"
и в bottle:
@route('/onunload', method='POST')
def on_unload():
#sys.exit(-1)
kill_process.killProcName('first')
Когда просто запускаю файл то работает, а когда перевожу в exe - нет.
Как убить процесс который я запустил с помощью py2exe?
Буду рад всем пинкам в нужную сторону.
Спасибо!

Офлайн

#2 Янв. 13, 2011 10:02:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

py2exe, убить процесс (откомпиленный)

Какой-то жуткий способ…



Офлайн

#3 Янв. 13, 2011 10:08:07

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

Андрей Светлов Согласен, подскажите красивый:)

Офлайн

#4 Янв. 13, 2011 10:15:28

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

py2exe, убить процесс (откомпиленный)

Жуть начинается с идеи запускать самый обычный браузер при старте вашего приложения (если я правильно понял).
Напишите простейшее UI для этих целей (webkit там или IE ActiveX встроить в окошко с рамкой). И, кажется, ничто не помешает поместить всё в один процесс.



Офлайн

#5 Янв. 13, 2011 10:38:55

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

Архитектуру приложения можно пересмотреть. У вас же все на питоне написано. Зачем несколько exe'шников?
Вам web сервер ваш нужно убить или процесс, который запускается вместе с приложением? Может быть first вынести в отдельный поток а не в отдельный процесс, и уже управлять из основного кода как вздумается?



Офлайн

#6 Янв. 13, 2011 12:10:23

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

igor.kaist пробовал прибить веб сервер тоже ничего не получилось

Офлайн

#7 Янв. 13, 2011 12:15:22

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

py2exe, убить процесс (откомпиленный)

Ой. У вас еще и полновесный веб-сервер стоит? Для десктопного приложения?



Офлайн

#8 Янв. 13, 2011 13:33:10

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

Андрей Светлов нет, конечно. Запускаю стандартный ботловский

run(port=80)
Запускается wsgiref server, как его остановить из браузера?

Отредактировано (Янв. 13, 2011 14:08:06)

Офлайн

#9 Янв. 13, 2011 14:57:01

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

py2exe, убить процесс (откомпиленный)

Еще раз. Почему не создать окошко с QWebView внутри (не любите Qt - есть много альтернатив), запустить в отдельном потоке wsgi server и наслаждаться жизнью?
Это типовое решение.



Офлайн

#10 Янв. 13, 2011 15:39:25

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

py2exe, убить процесс (откомпиленный)

Андрей Светлов я очень люблю Qt, но есть пару вопросов которые выходят из рамок данного топика, такие как работа с AJAX, jQuery(javascript).
И так, на будущие, можно, да и нужно обращаться ко мне на “Ты”.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version