Как заставить программу начать первый запуск дня?

203
Ooker

Есть ли способ заставить программу запускаться при входе в систему, но только в первом сеансе. Если я выключу и перезапущу в тот же день, эта программа не запустится автоматически. Я спрашиваю как в Windows, так и в Linux.

Я думаю, что единственный способ - это написать сценарий, но я ищу способ не писать.

-3
Какая операционная система. То, как вы это сделаете в Linux, совершенно отличается от того, как вы это делаете в Windows. Я знаю, что в Windows, если вам нужно было завершить работу, невозможно сказать, если вы уже вошли в компьютер ранее. Ramhound 9 лет назад 0
Я использую Netrunner. Он основан на Kubuntu. Я думаю, что в Linux вы можете написать скрипт, но в Windows это сложнее. Я ищу метод, который не требует написания сценария. Ooker 9 лет назад 0
Вне сценария это невозможно в Windows. Ramhound 9 лет назад 0
Легко или нет (ИМХО легко) сделать __script - это самый удобный способ __. Представьте, что если вы хотите выполнять только одно выполнение этой программы в день, вам нужна программа, которая всегда работает и проверяет доступ к любому исполняемому файлу, как _antivirus_ может делать в Windows. Это огромная трата ресурсов. Если вы хотите проверять только автоматическое выполнение во время входа в систему, сценарий с 2-3 строками кода решит проблему. Пожалуйста, добавьте графическую среду под Linux, это важно. Обратите внимание, что существует разница между первым входом в день и первым входом в день после последней загрузки ... Hastur 9 лет назад 1

1 ответ на вопрос

2
Berend

Unless you can change this program yourself, the only way is to script. Luckily that is straightforward (on Windows, I assume you can do the same on Linux in a similar way):

:: Get date and remove / character set d=%date:/=% if exist "%TEMP%\%d%" goto :EOF echo _ > "%TEMP%\%d%" start program 

EDIT

Right now I have ~30,000 file in my TEMP folder, on a system I don't use too much, so I wouldn't worry too much about 365 1-byte files over a year. Admittedly, these files still take a full block (4kB?), and maybe you're short of diskspace, so here is a second script that only uses a single file.

set today=%temp%\today if exist "%today%" ( find "%date%" "%today%" if errorlevel 0 goto :EOF ) echo %date% > "%today%" start program 
Я собирался прокомментировать, что после года работы у пользователя будет 365 временных файлов. Но я попробовал это первым. (Вы не сделали, не так ли?) Команда `echo` дает мне` Система не может найти указанный путь. Я думаю, это потому, что `% date%` выглядит как "Ср 22.04.2015", и Windows обрабатывает `/` s в путевых именах как `` \ `` s. Имена файлов не могут содержать `/` s. Scott 9 лет назад 1
Я действительно пытался, но на голландской системе, которая дает ** wo 22-04-2015 **. Вы можете исправить это, используя **% date: / =% ** Berend 9 лет назад 0
Я подумал о 365 временных файлах, которые у вас будут, а также нашел способ обойти это (поместите файлы в% temp% \ subfolder и удалите все из него после того, как вы проверите «сегодняшний файл»), но это только отвлечет из оригинального вопроса Berend 9 лет назад 0
@ Скотт, так это хорошо использовать сейчас? Ooker 9 лет назад 0
По-прежнему существует проблема заполнения вашей папки TEMP сотнями маленьких файлов (с пробелами в их именах), но похоже, что это должно работать. Scott 9 лет назад 0
спасибо Беренд. Извините, если этот вопрос выглядит глупо, но как мне запустить этот скрипт? Я вставляю его в Блокнот и меняю расширение на exe, и запускаю его при каждом запуске, но это не работает. Ooker 9 лет назад 0
@Ooker Попробуйте изменить расширение на ** bat ** или ** cmd **. Кроме того, не забудьте заменить последнюю строку `start program` на то, что вам нужно для запуска _your_ программы Berend 9 лет назад 0
да, я знаю, что мне нужно изменить последнюю строку. Я думаю, что это должно работать. Ooker 9 лет назад 0
это не работает В последней строке я заменил `program` на` C: \ "Program Files" \ Anki \ anki.exe`, но при запуске компьютера появляется только окно DOS, и оно сразу исчезает. Когда я набираю команду в cmd, программа запускается. Ooker 9 лет назад 0

Похожие вопросы