09.03.2016 15:03
Наличие/отсутствие флага, выставляемого уборщицей.
Опять уходим от системного решения в сторону алгоритмического, ну да ладно.
Программа запускается постоянно, независимо от того, работает она или нет. (привет виндошедалеру)
Есть флаг начала. Неоднозначность в вариантах:
1 вариант
Запустили, выставили флаг начала. Уборщица.
2 вариант
Запустили, выставили флаг начала. Работаем.

суть задачи не в определении зависшего процесса, а в недопущении запуска второй копии при работающей первой.
09.03.2016 15:05
Цитата:
grannie Если мы "флагируем" И начало, И конец процесса - мы всегда сможем разобраться после внезапной уборщицы, вытаскивающей кабель из сервера, запущен ли уже процесс штатно или "висит".
Так кто/что нам это мешает делать?
Что то я не очень понимаю алгоритм по которому это можно сделать.... Как именно нужно флаговать... и как отделить уборщицу от повторного запуска ?
09.03.2016 15:08
Цитата:
OlegON суть задачи не в определении зависшего процесса, а в недопущении запуска второй копии при работающей первой.
Так удали файлы при запуске... винды
09.03.2016 15:11
Цитата:
Micle Так удали файлы при запуске... винды
угу, давайте ломать голову, как сделать так, чтобы этой процедуре можно было гарантированно доверять, особенно, если винда разная (по версиям, политикам и локализации) и никто не логинится, например?
09.03.2016 15:18
Цитата:
OlegON угу, давайте ломать голову, как сделать так, чтобы этой процедуре можно было гарантированно доверять, особенно, если винда разная (по версиям, политикам и локализации) и никто не логинится, например?
тебе написать службу виндовую? Она будет гарантировано запускаться вместе с виндой, не зависимо от вошедшего пользователя и удалять файлы при запуске.... Это кстати ещё один вариант.
09.03.2016 15:20
Флаг1 - обычный файлик, формируемый по запуску
Флаг2 - файлик, формируемый по запуску, созданный с использованием FILE_ATTRIBUTE_TEMPORARY и FILE_FLAG_DELETE_ON_CLOSE, см. выше.
Флаг3 - обычный файлик, формируемый по завершении процесса

Запустили,
если есть флаг1, но нет флаг2 и флаг3, то - Уборщица.
если есть флаг1 и флаг2, но нет флаг3, то - активная копия запущена
если нет флаг1 - обнуляем все флаги нафиг и запускаем

Это если я правильно понимаю логику этих опций, конечно. И если ну ооооочень не хочется действительно просто сделать автоматически стираемую директорию при запуске.
09.03.2016 15:23
уборщица не удалит 2 файлик.... если только сама залогинится, с целью его удаления )))
09.03.2016 15:30
Цитата:
Micle тебе написать службу виндовую? Она будет гарантировано запускаться вместе с виндой, не зависимо от вошедшего пользователя и удалять файлы при запуске.... Это кстати ещё один вариант.
да я и сам умею писать разные костыли, спасибо... вопрос только в том, что тогда дистрибутив моей программки уже будет конкретно так страдать немногоплатформенностью, просить прав администратора и прочее, прочее, что я сопровождать как-то не очень хочу.
Сейчас ее скачал и запустил. А надо будет еще сервисный ехе вытащить, установить и т.п. Это же самое относится к организации автостираемой при запуске директории.
09.03.2016 15:34
Кстати если программу запускать из этой службы то и файлики никакие не нужны... И уже его готовый "пускач" для этих целей runasservice называется и гуглится прекрасно
09.03.2016 15:35
Т.е. можно при включенной UAC поставить сервис, не отвечая на вопросы?
Часовой пояс GMT +3, время: 13:42.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.