Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Незнаю какое сообщение нужно отлавливать когда пользователь логиниться в системе

67K
31 января 2011 года
timur2008
2 / / 31.01.2011
Здравствуйте. Подскажите пожалуйста какое сообщение посылаемое для WndProc нужно отлавливать когда пользователь логиниться в сети? Вот например при завершении работы(пользователь выходит из системы) посылается сообщение WM_ENDSESSION , а вот при входе в систему я не могу понять какое :( WM_STARTSESSION сейчас не используется в ОС :(

Например вот эта константа используется при завершении сеанса пользователя
 
Код:
const int WM_ENDSESSION = 0x16;

Пишу на C#.NET . Но я думаю что здесь всетаки больше API
297
31 января 2011 года
koodeer
1.2K / / 02.05.2009
http://msdn.microsoft.com/en-us/library/aa383841%28v=VS.85%29.aspx
http://support.microsoft.com/kb/310153#top
В .NET придётся использовать invoke.

Не знаю, можно ли это сделать с помощью WMI. Если будет время и желание, гляну.
67K
31 января 2011 года
timur2008
2 / / 31.01.2011
охх.. я попытался использовать это событие
 
Код:
WTS_SESSION_LOGON
0x5
:( но чето ничего не сработало . И главное что я не могу понять в каком именно методе его использовать( толи когда форма загружается , толи когда показывается) я и там и там использовал , но всеравно ничего не работает как надо :(
297
01 февраля 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: timur2008
но чето ничего не сработало



Невозможно сказать, что не сработало, не видя код.

Гуглить пробовали? Вот ссылочка, где и как использовать WTSRegisterSessionNotification - http://www.devnewsgroups.net/windowsforms/t42869-computer-locked.aspx


Покопался я в WMI. Не во всём разобрался. Но использовать можно. http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/6375c5aa-aa5e-4982-86d7-1723b67c7381/

Кстати, есть понимание того, что logon нужно ловить в сервисе, а не в обычном приложении?


И напоследок - в ряде случаев можно использовать класс SystemEvents. Во всяком случае, события SessionLock, SessionUnlock ловятся.

Код:
static void Main(string[] args)
{
    SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);

    Console.ReadLine();
}

static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
    Console.WriteLine(e.Reason.ToString());
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог