|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Запуск определенной программы через n времени??? |
|
|
[решено] Запуск определенной программы через n времени???
|
Пользователь Сообщения: 54 |
Нужен скрипт, который постоянно сидел бы в системном трее и через каждые 2 недели запускал программу (или каждый месяц 10 и 20 числа). И если комп был в это время выключен то программа должна запуститься при его включении. Заранее спасибо!
|
|
Отправлено: 16:56, 16-09-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Anarasius:
#RequireAdmin ;Добавляем программу в автозапуск If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then _ RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"') ;Указываем программу на запуск $sApp = "notepad.exe" While 1 If @MDAY = 10 Then Run($sApp) While @MDAY = 10 Sleep(60000) WEnd EndIf Sleep(1000) WEnd |
|
------- Последний раз редактировалось Creat0R, 16-09-2009 в 23:31. Отправлено: 22:27, 16-09-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Все отлично, но он у меня бесконечно запускает программу через каждую сек
|
Отправлено: 23:18, 16-09-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Anarasius:
![]() Поправил свой пост. |
|
------- Отправлено: 23:30, 16-09-2009 | #4 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Всеравно, я ставлю сегодняшнее число и запускаю скрипт он начинает бесконечно открывать блокнот, попробуйте сами!
Пробовал без добавления в автозапуск |
|
Отправлено: 23:49, 16-09-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А так:
#RequireAdmin ;Добавляем программу в автозапуск If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then _ RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"') ;Указываем программу на запуск $sApp = "notepad.exe" ;Указываем число запуска $nDay = 16 While 1 If @MDAY = $nDay Then Run($sApp) While @MDAY = $nDay Sleep(60000) WEnd EndIf Sleep(1000) WEnd |
------- Отправлено: 00:04, 17-09-2009 | #6 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Я бы добавил последнюю дату запуска в реестр или в ini-файл:
|
------- Отправлено: 01:15, 17-09-2009 | #7 |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Цитата Anarasius:
![]() Вот ... извиняйте если что забыл ![]() Количество "чисел" для запуска вроде как неограничено, можно хоть 20 раз за месяц... #NoTrayIcon #include <File.au3> If WinExists(@ScriptName) Then _Exit() AutoItWinSetTitle(@ScriptName) Opt("TrayMenuMode",1) TraySetClick(8) TraySetIcon("Shell32.dll", 25) TraySetToolTip ("Планировщик запуска") HotKeySet("!p", "_Exit") ; Alt + P выход Global $IniFile = @ScriptDir & "/Data_" & @ScriptName & ".ini" Global $iMDAY Global $NumberMonth[3] $NumberMonth[0] = 10 ; Нужные числа для запуска $NumberMonth[1] = 20 $NumberMonth[2] = 28 Global Const $iNumberNull = $NumberMonth[0] If Not FileExists($IniFile) Then _FileCreate($IniFile) If @Compiled = 1 Then If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then $iMsgBox = MsgBox(266532,"","Поместить программу в автозагрузку ?") If $iMsgBox = 6 Then RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"') EndIf EndIf $nAbout = TrayCreateItem("Тут цопирайты (С) :)") TrayCreateItem("") $nExit = TrayCreateItem("Выйти из планировщика задачь") TraySetState() $iIniRead = IniRead($IniFile, "Data", "Run", 0) If $iIniRead = 0 Then IniWrite($IniFile, "Data", "Run", "<" & @MDAY & "> <" & @MON & ">") $aiArray = StringRegExp($iIniRead, '<(.*?)>', 3) If Not (@error) Then If @MDAY > $aiArray[0] Then $NumberMonth[0] = @MDAY If @MON <> $aiArray[1] Then $NumberMonth[0] = @MDAY EndIf While 1 Switch TrayGetMsg() Case $nExit _Exit() Case $nAbout MsgBox(270400,"About", "Цопирайтинг (С) 2009", 5) Case Else If @MDAY <> $iMDAY Then For $iI = 0 To UBound($NumberMonth) - 1 If @MDAY = $NumberMonth[$iI] Then TraySetIcon("Shell32.dll", 246) TrayTip("Запускаем ...", "Планироващик задачь", 0, 1) RunWait("notepad") ; Программа для запуска IniWrite($IniFile, "Data", "Run", "<" & @MDAY & "> <" & @MON & ">") $NumberMonth[0] = $iNumberNull TraySetIcon("Shell32.dll", 25) ExitLoop EndIf Next EndIf $iMDAY = @MDAY EndSwitch WEnd Func _Exit() Exit EndFunc |
|
Отправлено: 00:25, 18-09-2009 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата FlatX007:
|
|
------- Отправлено: 02:46, 18-09-2009 | #9 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Цитата FlatX007:
P.S. ИМХО, это уже почти "Планировщик задач" получается. ![]() |
||
------- Отправлено: 04:41, 18-09-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - как через групповые политики запретить запуск программы | Alex6661 | Microsoft Windows 2000/XP | 19 | 14-07-2014 18:34 | |
Запуск программы по времени | Lodoss | AutoIt | 2 | 16-11-2009 22:02 | |
Разное - [решено] Как насильно запретить запуск определенной программы (процесса)? | st031 | Microsoft Windows 2000/XP | 4 | 05-06-2009 10:24 | |
[решено] Запуск программы через случайные интервалы времени | hitomi | AutoIt | 2 | 04-04-2009 19:04 | |
запуск нескольких копий одной программы через командную строку | XqlpX | Хочу все знать | 3 | 19-11-2008 13:48 |
|