Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно написать планировщик задач, как это сделать? Запуск приложений по таймеру, выкл комп. 
V
    Опции темы
Evan
Дата 4.2.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.11.2007
Где: г. Белгород

Репутация: нет
Всего: нет



Реализовать планировщик задач. Позволяет планировать запуск приложений, отключать, презагружать компьютер по таймеру(через определённый промежуток времени, либо в чётко заданное время) . Нужно ещё чтобы грузился с виндой, а данные о расписании хранить или в ini или в реестре...Кто что знает пишите. Заранее спасибо.
PM MAIL WWW ICQ   Вверх
THandle
Дата 4.2.2008, 19:57 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 7
Всего: 372



В данной формулировке теме место либо в центре помощи, либо в работе. 
PM   Вверх
Qu1nt
Дата 4.2.2008, 20:20 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 5
Всего: 50



Evan, в поиск.
PM MAIL   Вверх
Rennigth
Дата 5.2.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Evan, а чем не подходит стандартный виндовый Task-шедулер?


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
EndErr
Дата 21.2.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 9.12.2007

Репутация: нет
Всего: нет



Поищи в статьи Хакера, там был пример, сам по нему сделал планировщик
PM MAIL   Вверх
Poseidon
Дата 21.2.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



Проблема-то в чем?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gershkovich
Дата 21.2.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 8.2.2006

Репутация: нет
Всего: 2



http://cherryware.org/s3home.html

оно типо платное, но я напесал афтору - он выслал мне бесплатно.

Это сообщение отредактировал(а) Gershkovich - 21.2.2008, 17:07
PM MAIL   Вверх
THandle
Дата 21.2.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 7
Всего: 372



А зачем тему то подняли? Афтар уже 2 недели на форуме не появлялся, а тема наверху.
PM   Вверх
SneG0K
Дата 22.2.2008, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Неизвестно зачем=) Хотя я ничего супер сложного не вижу...
PM WWW Skype   Вверх
Rennigth
Дата 24.2.2008, 23:13 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



 smile 
Цитата(SneG0K @  22.2.2008,  00:06 Найти цитируемый пост)
Неизвестно зачем=) Хотя я ничего супер сложного не вижу... 

да ну... реализацию в студию smile


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
SneG0K
Дата 25.2.2008, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Цитата(Rennigth @  24.2.2008,  22:13 Найти цитируемый пост)
да ну... реализацию в студию 

Да а что тут сложного? Просто ниписать приложение, которое будет проверять время и запускать по определенному времени какую либо задачу... Хотя если положить это в цикл оно будет грузить немного грузить систему... Причем в гугле и внизу такой информации туева хуча smile 
PM WWW Skype   Вверх
THandle
Дата 25.2.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 7
Всего: 372



Кончаем флудить господа. smile 
PM   Вверх
Evan
Дата 28.2.2008, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.11.2007
Где: г. Белгород

Репутация: нет
Всего: нет



Спасибо за советы. В принципе уже почти сам допытал, но есть одна проблема. Прога в может отслеживать тока одну задачу. Делаю , чтоб для нескольких. Каждое задние записывается в запись
TZadanie = record
    Name:string;
    Path:string;
    Date:TDateTime;
    Hour:word;
    Minut:word;
    Action:string;
Все записи хранятся в массиве
TZadMas = array[0..50] of TZadanie;
ZadMas:TZadMas;
Читаю данные в массив, но как постоянно отслеживать задачу. Думаю сделать двумя циклами: внутренний просматривает массив на и сравнивает время залдачи с текущим, а второй зпускает поновой этот просмотр массив. Так вот вопрос в том как выйти из цикла по выполнении всех задач из массива. Т.е. какое условие задть? Вот код:
i:=0;
// получить текущее время
    cHour := HourOf(Now);
    cMin :=  MinuteOf(Now);
number:=0;
repeat
for i:=0 to 50 do begin
if (cHour = Zadmas[i].Hour) and (cMin = Zadmas[i].Minut) then

if Zadmas[i].Action='Run' then number:=0 else if Zadmas[i].Action='Reboot' then number:=1
else if Zadmas[i].Action='Shutdown' then number:=2 else if Zadmas[i].Action='Logoff' then number:=3;

  case number of
  0:begin
  ShellExecute(handle,'open',Pchar(Edit1.Text),nil,'',SW_Normal);
  Timer2.Enabled:=false;
    end;
  1:begin //Перезагрузить
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_FORCE OR EWX_REBOOT,0);
  end;
  2:begin //Завершить работу
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
  end;
  3:begin //Выйти из системы
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_LOGOFF or EWX_FORCE, 0);
   end;
  end;//endcase
  end;//endfor
until  ???
PM MAIL WWW ICQ   Вверх
Rennigth
Дата 28.2.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Evan, читать код невозможно, используй тег code


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Evan
Дата 1.3.2008, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.11.2007
Где: г. Белгород

Репутация: нет
Всего: нет



Код

i:=0;
// получить текущее время
    cHour := HourOf(Now);
    cMin :=  MinuteOf(Now);
number:=0;
repeat
for i:=0 to 50 do begin
if (cHour = Zadmas[i].Hour) and (cMin = Zadmas[i].Minut) then

if Zadmas[i].Action='Run' then number:=0 else if Zadmas[i].Action='Reboot' then number:=1
else if Zadmas[i].Action='Shutdown' then number:=2 else if Zadmas[i].Action='Logoff' then number:=3;

  case number of
  0:begin
  ShellExecute(handle,'open',Pchar(Edit1.Text),nil,'',SW_Normal);
  Timer2.Enabled:=false;
    end;
  1:begin //Перезагрузить
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_FORCE OR EWX_REBOOT,0);
  end;
  2:begin //Завершить работу
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
  end;
  3:begin //Выйти из системы
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
  tp.PrivilegeCount := 1;
  tp.Privileges[0].Attributes := 2;
  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
  ExitWindowsEx(EWX_LOGOFF or EWX_FORCE, 0);
   end;
  end;//endcase
  end;//endfor
until  ??? 

PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.