Добрый день всем.
Необходимо написать программу, которая создает новый десктоп, переключается на него, выводит модальное окошко и ждет реакцию пользователя. Как только пользователь ответил (нажал кнопочку), программа убивает созданный десктоп и переключается на дефолтный рабочий стол (так же работает UAC в висте).
С созданием и переключением проблем не возникает — делаю стандартно:
1.CreateDesktop, SetThreadDesktop, SwitchDesktop
2.Показываю окошку, жду реакцию
3.SwitchDesktop назад, SetThreadDesktop на основной поток программы, CloseDesktop.
Но проблема кроется в другом: если есть какая-нибудь программка (например, миранда), которая сама переключает рабочий стол на дефолтный через 1-3 сек. В итоге мой десктоп прячется, а модальное окошко висит так и не дождавшись внимания со стороны пользователя.
Вопрос: Каким образом можно сделать, чтобы мой десктоп не смогли переключить на другой, до того как юзер сам не нажал кнопку на моем окошке ? (Возможно, заблокировать SwitchDesktop или поиграться с правами)
Здравствуйте, 1g0r, Вы писали:
1>Необходимо написать программу, которая создает новый десктоп, переключается на него, выводит модальное окошко и ждет реакцию пользователя. Как только пользователь ответил (нажал кнопочку), программа убивает созданный десктоп и переключается на дефолтный рабочий стол (так же работает UAC в висте).
Возможно не совсем в тему, но всё же
http://sudown.sourceforge.net/index.php?page=intro