Форум сайта python.su
Доброго времени суток!
Я использую 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"
@route('/onunload', method='POST')
def on_unload():
#sys.exit(-1)
kill_process.killProcName('first')
Офлайн
Какой-то жуткий способ…
Офлайн
Андрей Светлов Согласен, подскажите красивый:)
Офлайн
Жуть начинается с идеи запускать самый обычный браузер при старте вашего приложения (если я правильно понял).
Напишите простейшее UI для этих целей (webkit там или IE ActiveX встроить в окошко с рамкой). И, кажется, ничто не помешает поместить всё в один процесс.
Офлайн
Архитектуру приложения можно пересмотреть. У вас же все на питоне написано. Зачем несколько exe'шников?
Вам web сервер ваш нужно убить или процесс, который запускается вместе с приложением? Может быть first вынести в отдельный поток а не в отдельный процесс, и уже управлять из основного кода как вздумается?
Офлайн
igor.kaist пробовал прибить веб сервер тоже ничего не получилось
Офлайн
Ой. У вас еще и полновесный веб-сервер стоит? Для десктопного приложения?
Офлайн
Андрей Светлов нет, конечно. Запускаю стандартный ботловский
run(port=80)
Отредактировано (Янв. 13, 2011 14:08:06)
Офлайн
Еще раз. Почему не создать окошко с QWebView внутри (не любите Qt - есть много альтернатив), запустить в отдельном потоке wsgi server и наслаждаться жизнью?
Это типовое решение.
Офлайн
Андрей Светлов я очень люблю Qt, но есть пару вопросов которые выходят из рамок данного топика, такие как работа с AJAX, jQuery(javascript).
И так, на будущие, можно, да и нужно обращаться ко мне на “Ты”.
Офлайн