Re[4]: GINA:пропадает Logon диалог
От: .Mistery Беларусь  
Дата: 11.05.04 13:44
Оценка:
Здравствуйте, Toughpheeckouse, Вы писали:

T>Здравствуйте, .Mistery, Вы писали:


M>>Здравствуйте, Vladimir_the_Red_Sunny, Вы писали:


V__>>>Появляется диалог логона. Если не логиниться, и вообще его не трогать, то через две минуты он исчезает сам, а комп "зависает"? В этом проблема? А WlxDisplaySASNotice пустая у Вас?


M>>Она не должна быть пустая, в ней как раз то и должен выводится диалог логина юзера.

T>не согласен. там должно показхываться приведствие (или быть пустой), а logon dialog должен показываться в WlxLoggedOutSAS.

Наверное мы не так друг друга поняли или обьяснили друг другу неправильно. Да если речь идет именно о диалоги логина юзера то конечно мы должны его вывести после получения SAS, например CTRL-ALT-DEL

MSDN:
The WlxLoggedOutSAS Winlogon calls this function when it receives an SAS event while no user is logged on.


У меня просто сделано немного не так. В WlxDisplaySASNotice проходит весь цикл жизни всех диалогов, после долгих эксперементов это оказалось разумным.

MSDN:
The WlxDisplaySASNotice Winlogon calls this function when no user is logged on.


Потому как, а что делать если есть заставка winlogon, и пока еще WlxLoggedOutSAS не сработал, а user захотел выключить комп или перезагрузить? Или тебе нужно среагировать на какие либо события WM_DEVICECHANGE например и проверить какой нибудь девайс, например SMARTCARD или еще чего нибудь. Как ты это обработаешь? А у меня это работает так. В WlxDisplaySASNotice работает DUMMY диалог у которого есть только кнопка выключения, через которую можно вызвать диалог с тремя кнопками (Stand BY, Restart, Shutdown). Выглядит это так ка у MS GINA при загрузке компа, внизу кнопочка выключения. А так же при данном подходе у тебя работает message loop в котором ты ловишь все event которые тебе нужны, такие например как WM_DEVICECHANGE и т.д. В итоге получаешь более гибкий контроль. И диалог логина юзера уже запускается и message loop этого dummy диалога.

M>>Если в WlxScreenSaverNotify вернуть FALSE то никаких засыпаний не будет.

T>так и есть.

M>>WlxDisplayStatusMessage, возвращаем FALSE и winlogon знает что никаких messages небыло отображено.

T>и так тоже.

M>>Они не должны быть пустые, т.е. хотябы TRUE или FALSE они должны возвращать. И запихивать туда диалоги вовсе не обязательно.

T>+1
... << RSDN@Home 1.1.3 beta 1 >>
Мы — маньяки, должны помогать друг другу!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.