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

Аватара пользователя
Anarasius

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

Сообщение Anarasius »

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

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

Сообщение Anarasius »

Цитата Anarasius:



Нужен скрипт, который постоянно сидел бы в системном трее и через каждые 2 недели запускал программу (или каждый месяц 10 и 20 числа)
[решено] Запуск определенной программы через n времени???




Вот так примерно:





Код:

Код: Выделить всё

#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
Аватара пользователя
Anarasius

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

Сообщение Anarasius »

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

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

Сообщение Creat0R »

Цитата Anarasius:



он у меня бесконечно запускает программу через каждую сек
[решено] Запуск определенной программы через n времени???




Если 10-ое число? В поставленной задачи ничего не сказано по поводу одноразового запуска Изображение



Поправил свой пост.
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

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



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

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

Сообщение Anarasius »

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



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

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

Сообщение Creat0R »

А так:





Код:

Код: Выделить всё

#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

?
Аватара пользователя
Diamond

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

Сообщение Diamond »

Цитата Anarasius:



И если комп был в это время выключен то программа должна запуститься при его включении. Заранее спасибо!
[решено] Запуск определенной программы через n времени???




Все самое главное забыли Изображение



Вот ... извиняйте если что забыл Изображение (Оставлю ка я себе програмку пригодится)

Количество "чисел" для запуска вроде как неограничено, можно хоть 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
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

Цитата FlatX007:




Цитата Anarasius:



И если комп был в это время выключен то программа должна запуститься при его включении. Заранее спасибо!



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




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



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

Вернуться в «AutoIt»