![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Залогинился юзер или нет. [D7, WinXP]
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, в случае неудачного вызова реализуй сам.