Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Запуск определенной программы через n времени???

Ответить
Настройки темы
[решено] Запуск определенной программы через n времени???

Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужен скрипт, который постоянно сидел бы в системном трее и через каждые 2 недели запускал программу (или каждый месяц 10 и 20 числа). И если комп был в это время выключен то программа должна запуститься при его включении. Заранее спасибо!

Отправлено: 16:56, 16-09-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Anarasius:
Нужен скрипт, который постоянно сидел бы в системном трее и через каждые 2 недели запускал программу (или каждый месяц 10 и 20 числа) »
Вот так примерно:

Код: Выделить весь код
#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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 16-09-2009 в 23:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:27, 16-09-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все отлично, но он у меня бесконечно запускает программу через каждую сек

Отправлено: 23:18, 16-09-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Anarasius:
он у меня бесконечно запускает программу через каждую сек »
Если 10-ое число? В поставленной задачи ничего не сказано по поводу одноразового запуска

Поправил свой пост.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:30, 16-09-2009 | #4


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всеравно, я ставлю сегодняшнее число и запускаю скрипт он начинает бесконечно открывать блокнот, попробуйте сами!

Пробовал без добавления в автозапуск

Отправлено: 23:49, 16-09-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить 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
?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:04, 17-09-2009 | #6


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Я бы добавил последнюю дату запуска в реестр или в ini-файл:
читать дальше »
Код: Выделить весь код
#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"

;Определяем последнюю дату запуска
$sLastDay = IniRead(@ScriptDir & "\test.ini","options", "LastDay", -1)

While 1
    If @MDAY = 10 Or @MDAY = 17 Then
        If $sLastDay <> @MDAY & "." & @MON Then
            ;Запоминаем последнюю дату для текущей сессии:
            $sLastDay = @MDAY & "." & @MON
            ;Запоминаем последнюю дату запуска в ini-файл(на случай перезагрузки компьютера):
            IniWrite(@ScriptDir & "\test.ini","options", "LastDay", $sLastDay)
            Run($sApp)
        EndIf
    EndIf
    Sleep(2000)
WEnd

-------
Создатель знает, что достиг совершенства не когда нечего добавить, а когда нечего убрать. - Антуан де Сент-Экзюпери

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:15, 17-09-2009 | #7


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить 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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
Все самое главное забыли »
И что это? добавление в автозапуск?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:46, 18-09-2009 | #9


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Цитата FlatX007:
Цитата Anarasius:
И если комп был в это время выключен то программа должна запуститься при его включении. Заранее спасибо!
Все самое главное забыли »
Я так понял... если запуск на запланированное число был пропущен(например если компьютер в этот день ни разу не включали), то нужно запустить программу как только это станет возможным, т.е. уже не зависимо от назначенного числа.

P.S. ИМХО, это уже почти "Планировщик задач" получается.

-------
Создатель знает, что достиг совершенства не когда нечего добавить, а когда нечего убрать. - Антуан де Сент-Экзюпери


Отправлено: 04:41, 18-09-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Запуск определенной программы через n времени???

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - как через групповые политики запретить запуск программы 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




 
Переход