| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Планировщик задач |
| Автор: x77 19.4.2006, 14:24 |
| тот, который живёт в Start\Programs\Accessoires\System Tools\Scheduled tasks требуется вытащить список заданий с параметрами запуска. бодаюсь уже с неделю. удалось нарыть, что 1) функции netapi32 типа NetScheduleJobEnum не работают. 2) формат файла в Windows\Tasл\*.job - в мсдн не описан и никто его не знает. 3) есть mstask.dll, в которой, насколько я понял, описан некий COM-интерфейс для работы с виндовым планировщиком. в Visual C++ удалось скомпилять и выполнить пример из Platform SDK, который выдал список назначенных заданий. но сам этот интерфейс в системе не зарегестрирован, по крайней мере, создать COM-объект по GUID'у из mstask.h мне не удалось. писать на сях длл-ку, которая будет делать то, что надо, и потом вызывать её - мне тоже не улыбается, потому что получать список тасков мне надо из-под своего DCOM-сервера, и мусорить чужую машину какими-то левыми длл-ками - очень сильно не хочется. зарегестрировать в системе mstask также не удаётся, ни как COM-сервер, ни как библиотеку типов. 4) есть mstask.IDL, который, насколько я понимаю, можно как-то заюзать в дельфях, чтобы получить "свой" ком-объект и работать дальше с ним. если да, то как это делается? эксперименты с idl2pas, midl и протчим успехом не увенчались. кто-нибудь когда-нибудь решал такую задачу |
| Автор: x77 19.4.2006, 14:41 |
| Snowy, если не получится сделать самому - то да, пойдёт. отдам 30 баксов и посмотрю, как умные люди пишут а реализовывать эту байду сам никто не пробовал? |
| Автор: x77 19.4.2006, 15:02 |
| ещё вот нарылась забавная команда. schtasks в крайнем случае можно либо перенаправить вывод пайпами в мемору-стрим какой-нить, либо юзать голый редирект с waitforsingleobject. блин, даже в дос это включено! а нормального интерфейса - нету. ненавижу мелкософт. |
| Автор: Snowy 19.4.2006, 15:08 |
| Сам не юзал. (У меня эта дыра в системе вообще вырезается сразу после установки виндов.) Но, покопавшись в своих закромах, нашел API с демой: |
| Автор: Rouse_ 19.4.2006, 15:22 |
Работают, просто они показывают записи по текущему аккаунту планировщика. Без соответствующего переключения он является SYSTEM. Для проверки попробуй создать через планировщик задачу, а потом еще одну но уже из кода программы руками и посмотри на колонку Creator. Для переключения выполни SetNetScheduleAccountInformation... Примеров под рукой нет, так что топчи MSDN сам |
| Автор: x77 19.4.2006, 15:35 |
| Snowy, это оно! спасибо Rouse_, да пробовали, и в дельфи, и в сях. потом вычитали в СДК, что оно локально работать всё равно не будет, и забили на это всё |
| Автор: x77 19.4.2006, 16:31 | ||
короче, вот, вдруг, сгодится кому
|