Хотелось бы еще раз затронуть вопрос о том, как определить заблокирован ли компьютер.
Мне нужно чтобы мой код работал на Windows 2000, Windows XP.
Недокументированное событие WinSta0_DesktopSwitch не подходит, так как не известно, что будет с ним в будущем.
Действительно ли необходимо создавать собственную *.dll в случае использования winlogon notification package? Наверняка есть какая-нибудь функция или событие, которое можно использовать для этой цели и чтобы работало на обоих операционных системах.
Я пробовал использовать сообщение WM_WTSSESSION_CHANGE, но при запуске программы под Windows 2000 говорит, что не знает функции ::WTSRegisterSessionNotification, которая нужна для получения окном WM_WTSSESSION_CHANGE.
В MSDN, Winlogon Notification Package ничего подохдящего не нашел, либо не туда смотрел.
Здравствуйте, Lade, Вы писали:
L>Всем здрасте.
L>Хотелось бы еще раз затронуть вопрос о том, как определить заблокирован ли компьютер.
L>Мне нужно чтобы мой код работал на Windows 2000, Windows XP.
L>Недокументированное событие WinSta0_DesktopSwitch не подходит, так как не известно, что будет с ним в будущем. L>Действительно ли необходимо создавать собственную *.dll в случае использования winlogon notification package? Наверняка есть какая-нибудь функция или событие, которое можно использовать для этой цели и чтобы работало на обоих операционных системах.
L>Я пробовал использовать сообщение WM_WTSSESSION_CHANGE, но при запуске программы под Windows 2000 говорит, что не знает функции ::WTSRegisterSessionNotification, которая нужна для получения окном WM_WTSSESSION_CHANGE. L>В MSDN, Winlogon Notification Package ничего подохдящего не нашел, либо не туда смотрел.
L>Подскажите решение проблемы.
Есть такая нотификация (см. MSDN)
Winlogon Notification Events
Winlogon can inform your notification package of the following events:
Lock
This event occurs when the user locks the workstation.
Feierlich, misterioso
Re[2]: How to determine that the computer is locked?
L>Да, я читал об этом, но честно говоря, не понял как их использовать. Подскажи пожалуйста!
P.S.
Дело в том, что писать собственную *.dll только для того, чтобы узнать заблокирован ли компьютер, на мой взгляд не совсем оправдано.
Поэтому хотелось бы узнать какой-либо другой вариант решения данной проблемы.
Re[4]: How to determine that the computer is locked?
Здравствуйте, Lade, Вы писали:
L>>Да, я читал об этом, но честно говоря, не понял как их использовать. Подскажи пожалуйста!
L>P.S. L>Дело в том, что писать собственную *.dll только для того, чтобы узнать заблокирован ли компьютер, на мой взгляд не совсем оправдано. L>Поэтому хотелось бы узнать какой-либо другой вариант решения данной проблемы.
Если тебя интересует только событие lock, то dll может содержать только одну функцию (естественно кроме DllMain). Остальные реализовать необязательно.
Feierlich, misterioso
Re: How to determine that the computer is locked?
От:
Аноним
Дата:
10.10.06 07:37
Оценка:
OpenInputDesktop вернет ACCESS_DENIED
Хотя теоретически такое может быть не только с локом десктопа, но на практике нигде больше кроме своих экспериментов я такого не встречал
Re[5]: How to determine that the computer is locked?
От:
Аноним
Дата:
10.10.06 13:43
Оценка:
Здравствуйте, FoolS.Top, Вы писали:
FT>Здравствуйте, Lade, Вы писали:
L>>>Да, я читал об этом, но честно говоря, не понял как их использовать. Подскажи пожалуйста!
L>>P.S. L>>Дело в том, что писать собственную *.dll только для того, чтобы узнать заблокирован ли компьютер, на мой взгляд не совсем оправдано. L>>Поэтому хотелось бы узнать какой-либо другой вариант решения данной проблемы.
FT>Если тебя интересует только событие lock, то dll может содержать только одну функцию (естественно кроме DllMain). Остальные реализовать необязательно.
То есть необходимо создавать *.dll.
А другими средствами как-нибудь можно обойтись, исключая недокументированные?
Re[6]: How to determine that the computer is locked?
От:
Аноним
Дата:
12.10.06 07:37
Оценка:
Здравствуйте, Аноним, Вы писали:
А>То есть необходимо создавать *.dll. А>А другими средствами как-нибудь можно обойтись, исключая недокументированные?
Да, DLL документированный способ. Как правильно уже сказали в вашем случае всё сводится к написанию одной функции. Чем вам не нравится этот способ ? С глобальными хуками по-моему и то плясок больше, и ничего пишут dll.