05.02.2016 15:46
OlegON
 
Собственно, нужно, чтобы когда комп ребутился, пропадал файлик, которым я отмечаю запущенность моей программки. Как этого можно добиться?
Поясню.
1. Запускается программка, создает файлик.
2. Запускается программка опять, видит файлик и выходит.
3. Программка завершается и удаляет файлик.

Вот, если между 1. и 3. рубануть по питанию, то файлик застревает и программка застревает надолго (возраст файлика проверяется). Есть ли возможность в винде создать файл как-то так, чтобы при перезагрузке он пропадал?
05.02.2016 15:49
twix
 
А почему бы не использовать мьютексы?

А вообще, если надо совсем деревянно, то просто добвляй команду на удаление файлика в ветку реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\RunOnce" при каждом успешном запуске программы, и всё.
05.02.2016 16:12
KirillHome
 
А что, в планировщик прописать задачу на удаление файл "при запуске компьютера" - не получается?
05.02.2016 16:14
baggio
 
Цитата:
OlegON Собственно, нужно, чтобы когда комп ребутился, пропадал файлик, которым я отмечаю запущенность моей программки. Как этого можно добиться?
Поясню.
1. Запускается программка, создает файлик.
2. Запускается программка опять, видит файлик и выходит.
3. Программка завершается и удаляет файлик.

Вот, если между 1. и 3. рубануть по питанию, то файлик застревает и программка застревает надолго (возраст файлика проверяется). Есть ли возможность в винде создать файл как-то так, чтобы при перезагрузке он пропадал?
а проверить наличие в памяти никак?
05.02.2016 16:28
student
 
для винды
когда то давным давно (даже и не помню от куда :() .... но сохранилось без купюр :)

Чтобы не чистить вручную временные папки: C:\Users\Administrator\AppData\Local\Temp или C:\Users\YourNickname\AppData\Local\Temp и C:\Windows\Temp можно автоматизировать данный процесс при выходе из системы
1) Создайте командный файл сценария:
Инструкция:
1. Скопируйте код в любой текстовый редактор (например, Блокнот).
2. Нажмите CTRL+S и сохраните файл с любым именем и расширением. cmd
3. Если вы выбираете тип файла: Текстовые файлы, то имя файла в кавычки брать обязательно. (Например: “tempdirclean. cmd”)
4. Если вы выбираете тип файла: Все файлы, то имя файла в кавычки брать не надо.
PUSHD %TEMP% 2>Nul RD /S/Q “%TEMP%” POPD PUSHD %WinDir%\TEMP 2>Nul RD /S/Q “%WinDir%\TEMP” POPD
2) Скопируйте его для удобства в корневую папку диска С:
3) Запустите редактор групповых политик: Пуск -> Выполнить -> gpedit. msc или Win+R -> gpedit. msc
4) Откройте ветвь Конфигурация пользователя > Конфигурация Windows > Сценарии (вход/выход из системы).
5) В правой части два раза кликните по параметру Выход из системы или нажмите правую кнопку мыши и выберите пункт Свойства.
6) Нажмите кнопку Добавить, укажите месторасположение созданного Вами командного файла c:\tempdirclean. cmd
7) Нажмите Ок, затем снова Ок
Теперь при выходе из системы, а также при завершении работы временные папки очистятся автоматически.
Внимание: Если по указанной выше схеме Вы добавите командный файл сценария в свойства параметра Выход из системы, находящийся в ветке Конфигурация компьютера > Конфигурация Windows > Сценарии (запуск/завершение), то пользовательская временная папка очищена не будет, а очистится только временная папка самой Windows.
==========================
т.е. если создать свой сценарий то возможно не только удалять любой файлик но и делать еще кучу всего полезного
05.02.2016 16:47
whitewizard
 
Некошерно. Лучше сверять время файлика и брать время запуска винды.
05.02.2016 16:51
OlegON
 
Спасибо большое за отклики, но ...
1. Это Java, т.е. мьютексами я только в пределах одной виртуальной машины могу что-то сделать. Т.е. применение ограничено только потоками максимум.
2. По той же причине никак не могу добраться до памяти.
3. Планировщик идет лесом, поскольку он тупо может не работать, либо опять косяки во многообразии винды.
4. Всякие сценарии по очистке системы собирать - обязательно где-то не сработает приблизительно с такими же рисками, как и то, что файл останется по ребуту. Сделать надо из софта, руками никто ничего делать не будет.
5. Забегая вперед, всякие папки автозагрузки тоже не катят, возможно, что никто не залогинится.
05.02.2016 16:52
OlegON
 
Цитата:
whitewizard Некошерно. Лучше сверять время файлика и брать время запуска винды.
Опять налетаем на Java. Запускать какую-то утилиту и читать ее вывод со всеми локализациями - круто слишком...

Бесит эта недоос...
05.02.2016 17:10
whitewizard
 
тогда обновляй каждую минуту файл флага, при условии, что не более двух минут прошло со времени последнего обновления.
иначе удаляй его.
05.02.2016 17:14
baggio
 
Цитата:
OlegON Спасибо большое за отклики, но ...
1. Это Java, т.е. мьютексами я только в пределах одной виртуальной машины могу что-то сделать. Т.е. применение ограничено только потоками максимум.
2. По той же причине никак не могу добраться до памяти.
3. Планировщик идет лесом, поскольку он тупо может не работать, либо опять косяки во многообразии винды.
4. Всякие сценарии по очистке системы собирать - обязательно где-то не сработает приблизительно с такими же рисками, как и то, что файл останется по ребуту. Сделать надо из софта, руками никто ничего делать не будет.
5. Забегая вперед, всякие папки автозагрузки тоже не катят, возможно, что никто не залогинится.
тупо писать какойто watchdog... как бы стандарт...
Часовой пояс GMT +3, время: 15:22.

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