Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Имя пользователя (http://forum.oszone.net/showthread.php?t=188750)

SOV 19-10-2010 14:29 1522286

Имя пользователя
 
Сделал простое описание, чтобы больше людей посетило тему.
Более конкретное описание задачи.

Прежде всего хочу заметить, что уделил поиску информации в интернете много времени.
Насмотрелся в интернете много разного, поэтому чтобы не было лишних комментариев - уточню один нюанс (скорее всего с вашей стороны это покажется глупым):
В Windows может работать одновременно несколько пользователей (удаленный, вторичный запуск, терминал, программы, запущенные от разных локальных пользователей ...), но только ОДИН пользователь может реально (физически) сидеть за одним компьютером и что-то делать.
Мне нужно узнать имя учетной записи этого пользователя из программы, которая выполняется на этом же компьютере от имени другого пользователя (например сервис).
Прошу кусок рабочего кода. Со своей стороны поделюсь информацией накопленной за многие месяцы.

P.S.
Нашел код, который узнает имя пользователя, под которым был запущен процесс explorer.exe. В принципе этого вполне достаточно, но хотелось бы узнать или коллективно придумать более правильный способ решения данного вопроса.

Классная игра слов. Думаю, поймете.

BlackEric 19-10-2010 17:48 1522449

В простейшем случае все решается вызовом функции GetUserName.
Так же вынужден огорчить на компе может быть одновременно залогинено и работать несколько юзеров. Через Remote Desktop...

pva 19-10-2010 20:59 1522591

Ой, я тоже, дайте тоже огорчить! Эксплорер может быть и не запущен (можно прописать shell=wincmd). А может быть запущен не для текущей оконной станции (WindowStation). А чтобы до этой станции достучаться, и выяснить, чья она, нужны нехилые права (вроде система + интерактивная служба)

Delirium 20-10-2010 01:14 1522730

в C# есть такая возможность посредством вызова Thread.CurrentPrincipal . Может, подобное есть и в Delphi?
http://forum.codenet.ru/showthread.php?t=23236


Время: 02:32.

Время: 02:32.
© OSzone.net 2001-