Столкнулась с такой проблемой. Написала свою Gina, практически во всех функциях вызываю функции MSGina. Но при блокировке вызываю свое диалоговое окно с помощью функции WlxDialogBox (парент передаю NULL). Проблема с появлением SCREEN SAVER. Если я устанавливаю появление скрин сейвера на 1 минуту, то в диалоговое окно приходит событие:WLX_WM_SAS с в парамом : WLX_SAS_TYPE_SCRNSVR_TIMEOUT. И все отлично работает. Но стоит мне поставить период появления скрин сейвера больше, например, 3 минуты, как он вообще не появляется, но зато каждые две минуты (строго) мое окно закрывается! Причем с WlxDialogBox — возвращает 0! Событие WLX_SAS_TYPE_TIMEOUT — вообще не приходит. И скрин-сайвер не появляется... Не могу понять в чем дело... Может кто-то может подсказать. Заранее спасибо..
Здравствуйте, Aerina, Вы писали:
A>Столкнулась с такой проблемой. Написала свою Gina, практически во всех функциях вызываю функции MSGina. Но при блокировке вызываю свое диалоговое окно с помощью функции WlxDialogBox (парент передаю NULL). Проблема с появлением SCREEN SAVER. Если я устанавливаю появление скрин сейвера на 1 минуту, то в диалоговое окно приходит событие:WLX_WM_SAS с в парамом : WLX_SAS_TYPE_SCRNSVR_TIMEOUT. И все отлично работает. Но стоит мне поставить период появления скрин сейвера больше, например, 3 минуты, как он вообще не появляется, но зато каждые две минуты (строго) мое окно закрывается! Причем с WlxDialogBox — возвращает 0! Событие WLX_SAS_TYPE_TIMEOUT — вообще не приходит. И скрин-сайвер не появляется... Не могу понять в чем дело... Может кто-то может подсказать. Заранее спасибо..
По умолчанию, окна гины закрываются через 2 минуты после их показа. За это отвечает Winlogon. Так что здесь все нормально. Почеиу не появляется скрин-сейвер, не знаю. Надо подумать. А что вы делаете после показа окна?
Здравствуйте, Lonely Dog, Вы писали:
LD>По умолчанию, окна гины закрываются через 2 минуты после их показа. За это отвечает Winlogon. Так что здесь все нормально. Почеиу не появляется скрин-сейвер, не знаю. Надо подумать. А что вы делаете после показа окна?
Гм... я устанавливаю фокус в окно эдита — для того, чтобы пользователь мог заполнить поля...- естественно что это сбивает тайм аут... Вопрос тогда возникает такой — а где это написанно, что в гине через две минуты закрывается диалоговое окно... Я просто такого нигде не читала... Вы не могли бы мне скинуть ссылку на этот текст? Или это недокументировано? Мне кажется, что в MSDN такого не видела.
Кстати, тоже самое (то есть скрин-сейвер не появляется) происходит и с диалоговым окном, в котором нет эдитов (и вообще никаких элементов, кроме текста)((((( А как только окно закрывается — я проверяю значение с которым оно было закрыто и если это не скрин-сейвер и не нажатие "ок" вывожу его опять (в цикле).
Здравствуйте, Aerina, Вы писали:
A>Гм... я устанавливаю фокус в окно эдита — для того, чтобы пользователь мог заполнить поля...- естественно что это сбивает тайм аут... Вопрос тогда возникает такой — а где это написанно, что в гине через две минуты закрывается диалоговое окно... Я просто такого нигде не читала... Вы не могли бы мне скинуть ссылку на этот текст? Или это недокументировано? Мне кажется, что в MSDN такого не видела.
Почему же, это вполне документировано. У меня стоит MSDN Jan 2006, идем по следующему пути:
Win32 and COM development\Security\Authentication\Winlogon and GINA\Winlogon\Supported Dialog Service Time-out operations
Там написано, что винлогон закрывает окна по тайм-ауту. За выставление тайм-аута отвечает функция WlxSetTimeout. Там написано, что тайм-аут по умолчанию равен 2 минутам.
На чем пишете гину?
Re[4]: Мое диалоговое окно в Gina
От:
Аноним
Дата:
27.12.06 08:04
Оценка:
Здравствуйте, Lonely Dog, Вы писали:
LD>Почему же, это вполне документировано. У меня стоит MSDN Jan 2006, идем по следующему пути: LD>Win32 and COM development\Security\Authentication\Winlogon and GINA\Winlogon\Supported Dialog Service Time-out operations LD>Там написано, что винлогон закрывает окна по тайм-ауту. За выставление тайм-аута отвечает функция WlxSetTimeout. Там написано, что тайм-аут по умолчанию равен 2 минутам.
LD>На чем пишете гину?
Да-да. у меня такое тоже написанно... во-первых я уже пяталась установить другое время тайм аута с помощью WlxSetTimeout (например, 10 минут... но ничего не получилось — через две минуты окно закрывается). И снова же если читать MSDN там написанно, что при Time-out окно должно закрываться с результатом "WLX_DLG_INPUT_TIMEOUT" у меня же оно закрывается с 0! Потом написано, что перед закрытием в диалог должно прийти сообщение WLX_WM_SAS с в парамом WLX_SAS_TYPE_TIMEOUT. Но оно не приходит(((((, а окно просто закрывается, еще и с 0. В MSDN, напсианно, что WlxDialogBox в случае ошибки должно вернуть -1, а в DialogBox, что в случае если функция возвращает 0 — это ошибка с парентом (но у меня парент 0).