Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.23;
Скачать: CL | DM;

Вниз

IScheduledWorkItem.SetAccountInformation   Найти похожие ветки 

 
alxx ©   (2002-09-11 15:55) [0]

Пытаюсь программировать планировщик. Если добавлять задание и не давать пароля, то задача не выполняется. Однако, в MSDN сказано:

HRESULT SetAccountInformation(
LPCWSTR pwszAccountName,
LPCWSTR pwszPassword
);


pwszPassword
[in] String that contains the password for the account specified in pwszAccountName.
Set this parameter to NULL if the local account is specified or, optionally, for an account other than local system if the TASK_FLAG_RUN_ONLY_IF_LOGGED_ON flag was not passed to IScheduledWorkItem::SetFlags. (The TASK_FLAG_RUN_ONLY_IF_LOGGED_ON flag is provided so that applications can schedule tasks in their own accounts without knowing their own accounts" passwords.)


т.е. я так понимаю, если сделать так: SetAccountInformation("", nil); то задача должна выполняться для текущего аккаунта даже если пароль не задан. Но! выполняется она как то непонятно. Звук есть, а окна и сообщения на экран НЕ ВЫВОДЯТСЯ. Где я не прав?


 
alxx ©   (2002-09-11 16:00) [1]

Кстати, нигде не могу найти декларации
TASK_FLAG_RUN_ONLY_IF_LOGGED_ON!


 
alxx ©   (2002-09-11 17:22) [2]

A?


 
Ученик ©   (2002-09-11 17:24) [3]

#define TASK_SUNDAY (0x1)
#define TASK_MONDAY (0x2)
#define TASK_TUESDAY (0x4)
#define TASK_WEDNESDAY (0x8)
#define TASK_THURSDAY (0x10)
#define TASK_FRIDAY (0x20)
#define TASK_SATURDAY (0x40)
#define TASK_FIRST_WEEK (1)
#define TASK_SECOND_WEEK (2)
#define TASK_THIRD_WEEK (3)
#define TASK_FOURTH_WEEK (4)
#define TASK_LAST_WEEK (5)
#define TASK_JANUARY (0x1)
#define TASK_FEBRUARY (0x2)
#define TASK_MARCH (0x4)
#define TASK_APRIL (0x8)
#define TASK_MAY (0x10)
#define TASK_JUNE (0x20)
#define TASK_JULY (0x40)
#define TASK_AUGUST (0x80)
#define TASK_SEPTEMBER (0x100)
#define TASK_OCTOBER (0x200)
#define TASK_NOVEMBER (0x400)
#define TASK_DECEMBER (0x800)
#define TASK_FLAG_INTERACTIVE (0x1)
#define TASK_FLAG_DELETE_WHEN_DONE (0x2)
#define TASK_FLAG_DISABLED (0x4)
#define TASK_FLAG_START_ONLY_IF_IDLE (0x10)
#define TASK_FLAG_KILL_ON_IDLE_END (0x20)
#define TASK_FLAG_DONT_START_IF_ON_BATTERIES (0x40)
#define TASK_FLAG_KILL_IF_GOING_ON_BATTERIES (0x80)
#define TASK_FLAG_RUN_ONLY_IF_DOCKED (0x100)
#define TASK_FLAG_HIDDEN (0x200)
#define TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET (0x400)
#define TASK_FLAG_RESTART_ON_IDLE_RESUME (0x800)
#define TASK_FLAG_SYSTEM_REQUIRED (0x1000)
#define TASK_FLAG_RUN_ONLY_IF_LOGGED_ON (0x2000)
#define TASK_TRIGGER_FLAG_HAS_END_DATE (0x1)
#define TASK_TRIGGER_FLAG_KILL_AT_DURATION_END (0x2)
#define TASK_TRIGGER_FLAG_DISABLED (0x4)
#define TASK_MAX_RUN_TIMES ( 1440 )


 
alxx ©   (2002-09-11 17:35) [4]

Спасибо. У меня такого просто не было, видимо старые версии какие-то...
Но проблема то, похоже все равно остается. Приложения, которые запускает планировщик остаются невидимыми, даже если их показывать ShowWindow(Application.Handle, SW_SHOW);

А если задать нормальный правильный пароль, то все работает нормально.


 
alxx ©   (2002-09-12 10:04) [5]

Никто не знает?


 
Ученик ©   (2002-09-12 10:07) [6]

>alxx © (12.09.02 10:04)
Приведи код, так будет быстрее


 
alxx ©   (2002-09-12 12:48) [7]

Спасибо, я разобрался уже.
Там оказывается надо имя пользователя дать, а пароль nil, и флаг
TASK_FLAG_RUN_ONLY_IF_LOGGED_ON.



N:=SizeOf(Buf)-1;
Windows.GetUserName(Buf, N);
sUSER := StringToOleStr(PChar(@Buf[0]));

pWorkItem.SetAccountInformation(sUSER,nil);
SysFreeString(sUSER);

pWorkItem.SetTaskFlags(TASK_FLAG_RUN_ONLY_IF_LOGGED_ON);




Страницы: 1 вся ветка

Текущий архив: 2002.09.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-73501
Александр9999
2002-08-31 16:38
2002.09.23
DataBaseName


4-73944
eruc
2002-06-28 18:38
2002.09.23
Поддержка Unicode ...


14-73818
TCrash
2002-08-23 18:13
2002.09.23
Интересно


14-73873
Бармен
2002-08-29 11:51
2002.09.23
А есть кто из Симферополя?


7-73908
nick_serg
2002-07-15 00:18
2002.09.23
vs restarts