Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Залогинился юзер или нет. [D7, WinXP]


Страницы:   1 2

kolos_rus ©   (2005-11-24 11:37:00) 

Как в своем сервисе определить, залогинился юзер или нет?


BiN   (2005-11-30 12:15:00) [1]


> kolos_rus ©   (30.11.05 12:11) [29]
>
>
> > Отлично, вот и пусть служба выступает в роли прокси для
>
> > запросов от пользователя
>
> А если служба не знает как найти базу?


А кто знает?
Если пользователь, то клиентское приложение должно перед инициированием диалога со службой запросить у пользователя путь к БД и всё.
Вообще-то, тема уже кандидат в "Потрепаться".


kolos_rus   (2005-11-30 12:11:00) [2]


> Отлично, вот и пусть служба выступает в роли прокси для
> запросов от пользователя

А если служба не знает как найти базу?


BiN   (2005-11-30 12:00:00) [3]


> kolos_rus ©   (30.11.05 11:38) [24]
>
>
>
> С базой работает только сервер ( сервис).


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


Ботвин Дмитрий   (2005-11-30 11:50:00) [4]

Специально для тех, кто считает, что функция NetWkstaUserEnum возвращает всегда имя первого юзера из списка выдержка из мсдн:

The NetWkstaUserEnum function lists information about all users currently logged on to the workstation. This list includes interactive, service and batch logons.

kolos_rus ©

Ищи у себя ошибку :-)))


Набережных С.   (2005-11-30 11:50:00) [5]


> kolos_rus ©   (30.11.05 11:38) [23]

Плохо дело:( Тебе надо попросить родителей рассказать, чем отличается хамство от насмешки. В жизни пригодится.


kolos_rus   (2005-11-30 11:39:00) [6]


> kolos_rus ©   (30.11.05 11:38) [24]
>
> > Что-то мешает пользовательскому приложению запросить статус
>
> > доступности БД у службы?
>
> С базой работает только сервер.
> <Цитата>

Извиняюсь, последнее слово читать как сервис.


kolos_rus   (2005-11-30 11:38:00) [7]


> Что-то мешает пользовательскому приложению запросить статус
> доступности БД у службы?

С базой работает только сервер.


kolos_rus   (2005-11-30 11:38:00) [8]


> Набережных С. ©   (30.11.05 11:28) [21]

Всетаки ты первый начал хамить.


BiN   (2005-11-30 11:30:00) [9]


> kolos_rus ©   (30.11.05 11:14) [20]
>
> Смысл в том, что сервис контролирует доступ к удаленной
> базе данных. Если база недоступна (а этого пользователь
> не знает и потому не может сам начать диалог) сервис должен
> запросить настроечные данные для доступа к базе.


Что-то мешает пользовательскому приложению запросить статус доступности БД у службы?


Набережных С.   (2005-11-30 11:28:00) [10]


> kolos_rus ©   (30.11.05 09:29) [14]


> Хватит препираться.

Ну вот именно тебя я и забыл спросить, чего мне делать, а чего нет. Но, думаю, и дальше без твоих разрешений как-нибудь обойдусь.


kolos_rus   (2005-11-30 11:14:00) [11]

Смысл в том, что сервис контролирует доступ к удаленной базе данных. Если база недоступна (а этого пользователь не знает и потому не может сам начать диалог) сервис должен запросить настроечные данные для доступа к базе.


BiN   (2005-11-30 10:48:00) [12]


> kolos_rus ©   (30.11.05 10:39) [18]
>
> Он должен общаться с пользователем, т.е. сервис интерактивный,
>  а выдавть окна с сообщениями, а тем более окна для ввода
> при отсутствии пользователя смысла нет.


С самого начала ты пытаешься нарушить сервисную идеологию.
В идеале пользователь должен сам инициировать "диалог"  с сервисным приложением. Какие механизмы ты для этого будешь использовать - вопрос второй.


kolos_rus   (2005-11-30 10:39:00) [13]

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


BiN   (2005-11-30 10:20:00) [14]


> kolos_rus ©   (30.11.05 10:08) [16]
>
> Похоже, что иду не в ту сторону.


Что именно должен делать твой сервис?


kolos_rus   (2005-11-30 10:08:00) [15]

Совершенно согласен насчет читать описание.
Но деле в том, что сервис должен выполнять свои функции если workstation не заблокирована и отдыхать, когда заблокирована. По результатам получается, что даже сразу после перезагрузки уже кто-то залогинился. Мне ведь даже не надо имя пользователя ни первое, ни второе.
Похоже, что иду не в ту сторону. Кстати имя текущего пользователя можно выяснить через реестр, но после выхода этого пользователя из системы и до входа другого оно (имя) в реестре не затирается.


BiN   (2005-11-30 09:57:00) [16]


> kolos_rus ©   (30.11.05 09:25) [13]
>
> Попробовал получилось.
> Серви по таймеру каждую секунду пишет результат _GetUserName
> в файл.
> Правда возвращает все время одно и то же имя.
> Завершаю сеанс, вхожу под другим именем все равно одно и
> то же.
> Ни разу не выдало "не залогинился".
> Сама функция NetWkstaUserEnum возвращает все время 254.
> Вообщем мне так и не удалось выяснить залогинелся юзер или
> нет.


Пример тёзки Ботвина возвращает имя только первого в списке пользователя.
Вместо того, чтобы бездумно скатывать код иногда имеет смысл читать описание самому.


kolos_rus   (2005-11-30 09:29:00) [17]


> kolos_rus ©   (28.11.05 11:33) [7]

Хватит препираться. Я еще в
> Набережных С. ©   (29.11.05 17:25) [12]

написал, что ошибся цитатой и меня интересует NetWkstaUserEnum.
А WTSGetActiveConsoleSessionId все время возвращает 0.


kolos_rus   (2005-11-30 09:25:00) [18]


> Ботвин Дмитрий   (29.11.05 16:01) [10]
> Вот так пробуй:

Попробовал получилось.
Серви по таймеру каждую секунду пишет результат _GetUserName в файл.
Правда возвращает все время одно и то же имя.
Завершаю сеанс, вхожу под другим именем все равно одно и то же.
Ни разу не выдало "не залогинился".
Сама функция NetWkstaUserEnum возвращает все время 254.
Вообщем мне так и не удалось выяснить залогинелся юзер или нет.


Набережных С.   (2005-11-29 17:25:00) [19]


> kolos_rus ©   (29.11.05 13:29) [9]


> Кстати вышивать не пробовал?

Пробовал - замечательно получается. У меня все замечательно получается, за что берусь.

> Вообщето меня интересовала функция NetWkstaUserEnum

Пост [6]. Если уж врешь, то хотя-бы нет так бездарно:(

> Она возвращает числа, все время разные, что они означают.
>
> Я думал, что пока юэер не залогинился будет 0, ничего подобного.
>

А зачем что-то придумывать, если

> По описанию в MSDN очень похоже

а там все очень четко сказано?

> Прежде, чем что-то советовать, да еще в такой форме попробуй
> сам.

Да я-то пробовал. А советовать - договорились, не буду.


Ботвин Дмитрий   (2005-11-29 16:14:00) [20]

Ботвин Дмитрий   (29.11.05 16:01) [10]

P.S. Анализ значения, возвращаемого функцией NetWkstaUserEnum, в случае неудачного вызова реализуй сам.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо