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

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

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

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


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

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


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

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

 

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


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

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


И ребят в скрипте где то ошибка, если мы перезагружаем комп, то скрипт после этого пишет что тип запуск программы был а на самом деле Run он не выполнил. (это если вместо notepad прописать программу какуюнибуть (С/progam files/......))

Последний раз редактировалось Anarasius, 18-09-2009 в 12:53.


Отправлено: 12:24, 18-09-2009 | #11



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

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


Аватара для FlatX007

Ветеран


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

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


Цитата Anarasius:
(это если вместо notepad прописать программу какуюнибуть (С/progam files/......)) »
Прямой путь для запуска не стоит использовать.
Папка "программ файл" - (Вся система) не всегда находится на диске С ... у меня вот она на диске D
Для этого используют макро : @ProgramFilesDir

Код: Выделить весь код
RunWait(@ProgramFilesDir & '\Windows Media Player\wmplayer.exe')
Run(@ProgramFilesDir & '\Windows Media Player\wmplayer.exe')

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


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


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

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


хмм, программа при наступлении нужной даты запускается целый день т.е. если у меня настало 10 число программа запустилась, перезагружаю опять запустилась, как это убрать т.е.что бы программа запускалась только один раз при наступлении даты.

Отправлено: 00:26, 20-09-2009 | #13


Аватара для FlatX007

Ветеран


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

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


В шапке темы об этом не слова!

Отправлено: 01:12, 20-09-2009 | #14


Аватара для Creat0R

Must AutoIt


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

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


Цитата Anarasius:
как это убрать т.е.что бы программа запускалась только один раз при наступлении даты. »
Вот именно поэтому задачу изначально нужно поставить так, чтобы потом небыло вопросов и переделок:

Код: Выделить весь код
#NoTrayIcon
#include <Misc.au3>
;

_Singleton(@ScriptName)

;Задаём опции трея (меню пользователя)
Opt("TrayMenuMode", 1)

;Создаём пункты в значке трея
Global $nAbout_TrayItem = TrayCreateItem("About...")
TrayCreateItem("")
Global $nExit_TrayItem = TrayCreateItem("Выйти из планировщика задач    (Ctrl+Shift+E)")

;Задаём состояние трея
TraySetToolTip("Планировщик запуска")
TraySetIcon("Shell32.dll", 25)
TraySetClick(8)
TraySetState()

;Задаём горячую клавишу для выхода
HotKeySet("^+e", "_Exit") ; Ctrl + Shift + E выход

;Указываем файл конфигурации
Global $sConfig_File = StringTrimRight(@ScriptFullPath, 3) & "ini"

;Указываем программу(ы) для запуска
Global $aRun_Apps = StringSplit("notepad.exe|calc.exe", "|")

;Указываем числа для запуска программ(ы)
Global $aRun_Days = StringSplit("10,20,30", ",")

;Определяем последнюю дату запуска
Global $sLast_Run_Day = IniRead($sConfig_File, "Main", "Last Run Day", -1)

;Добавляем программу в автозапуск
If @Compiled = 1 Then
    If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then
        $iAsk = MsgBox(266532, "", "Поместить программу в автозагрузку?")

        If $iAsk = 6 Then _
            RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"')
    EndIf
EndIf

;Запускаем функцию _Check_Run_Proc() каждые 5 секунд
AdlibEnable("_Check_Run_Proc", 5000)
Call("_Check_Run_Proc")

;Главный цикл
While 1
    Switch TrayGetMsg()
        Case $nExit_TrayItem
            _Exit()
        Case $nAbout_TrayItem
            MsgBox(270400, "About", "Copyright (С) 2009", 5)
    EndSwitch
WEnd

Func _Check_Run_Proc()
    If @MDAY = $sLast_Run_Day Then Return

    For $i = 1 To $aRun_Days[0]
        If @MDAY = $aRun_Days[$i] Then
            ;Запоминаем последний день запуска
            $sLast_Run_Day = $aRun_Days[$i]

            ;Запоминаем последний день запуска в ini-файл (на случай перезагрузки компьютера)
            IniWrite($sConfig_File, "Main", "Last Run Day", $sLast_Run_Day)

            ;Задаём иконку значку в трее
            TraySetIcon("Shell32.dll", 246)

            ;Запускаем программы (задачи)
            Local $sTasks = ""

            For $j = 1 To $aRun_Apps[0]
                $sTasks &= $j & ". " & StringRegExpReplace($aRun_Apps[$j], "^.*\\", "") & @CRLF
                Run($aRun_Apps[$j])
            Next

            ;Показываем информацию о запуске
            TrayTip("Планировщик...", "Запущенные задачи: " & @CRLF & $sTasks, 0, 1)

            ;Ждём 3 секунды
            Sleep(3000)

            ;Задаём иконку значку в трее (обратно на изначальную)
            TraySetIcon("Shell32.dll", 25)

            ExitLoop
        EndIf
    Next
EndFunc

Func _Exit()
    Exit
EndFunc
Для пропущенных дней нужно писать отдельную проверку, и как верно заметил Diamond, это уже начинает походить на планировщик задач.

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

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

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

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

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



Компьютерный форум 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




 
Переход