Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отловить событие Win+Lock, И соотв. UnLock 
:(
    Опции темы
Kesh
Дата 26.9.2005, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



Собственно сабж... Программа должна знать когда Windows переходит в режим блокировки, и когда выходит из него... - и соответственно выполнять некоторое действие...
Объясните, пожалуйста, как это сделать... Просто никогда не работал с системными событиями...
Очень прошу потратить немного времени и объяснить подробно, ибо соображаю я туго... smile


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
_hunter
Дата 26.9.2005, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



GINA должна помочь:
http://www.osp.ru/win2000/2003/01/060_print.htm


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kesh
Дата 26.9.2005, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



_hunter Что-то тяжело мне... Мне не нужно влазить в саму систему... Просто из программы в определенный момент мне нужно узнать заблокирована рабочая станция или нет...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
_hunter
Дата 26.9.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



тогда ( если система ХР ( также должны быть запущены Terminal Services ) ) просто if ( WTSRegisterSessionNotification(hWnd, NOTIFY_FOR_ALL_SESSIONS) ) ( или NOTIFY_FOR_THIS_SESSION )
и ловим WM_WTSSESSION_CHANGE
смотрим wParam на предмет WTS_SESSION_LOCK/WTS_SESSION_UNLOCK




--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kesh
Дата 26.9.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



_hunter Прошу прощения за свою непорходимую глупость, но действительно никогда не занимался работой с системой, поэтому я не знаю, ни как ловить, ни как получать... Можно пример кода?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
_hunter
Дата 27.9.2005, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



самый простой способ:
вешаем на форму TApplicationEvents два тыка мышой по OnMessage
в его обработчике пишем
Код

switch ( Msg.message )
{
    case WM_WTSSESSION_CHANGE:
        if  ( Msg.wParam == WTS_SESSION_LOCK )
        {
        }
        else if  ( Msg.wParam == WTS_SESSION_UNLOCK )
        {
        }

        Handled = true;
        break;
}



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kesh
Дата 27.9.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



_hunter Спасибо за пример, но он не работает... При событии Lock|Unlock я пытаюсь сменить wallpaper... Но он не меняется... В чем может быть проблема?..


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
_hunter
Дата 27.9.2005, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



что именно не работает? как проверял? ( проверка сменой обоев -- не есть верное решение -- создай где-нить файл и пиши в него действия или при открытии/закрытии создавай по файлу )
сообщения вообще приходят?
что WTSRegisterSessionNotification() возвращает?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kesh
Дата 27.9.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: нет
Всего: 54



_hunter Все, разобрался... Спасибо тебе огромное...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
_hunter
Дата 28.9.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



всегда пожалуйста smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.