![]() |
Имя пользователя
Сделал простое описание, чтобы больше людей посетило тему.
Более конкретное описание задачи. Прежде всего хочу заметить, что уделил поиску информации в интернете много времени. Насмотрелся в интернете много разного, поэтому чтобы не было лишних комментариев - уточню один нюанс (скорее всего с вашей стороны это покажется глупым): В Windows может работать одновременно несколько пользователей (удаленный, вторичный запуск, терминал, программы, запущенные от разных локальных пользователей ...), но только ОДИН пользователь может реально (физически) сидеть за одним компьютером и что-то делать. Мне нужно узнать имя учетной записи этого пользователя из программы, которая выполняется на этом же компьютере от имени другого пользователя (например сервис). Прошу кусок рабочего кода. Со своей стороны поделюсь информацией накопленной за многие месяцы. P.S. Нашел код, который узнает имя пользователя, под которым был запущен процесс explorer.exe. В принципе этого вполне достаточно, но хотелось бы узнать или коллективно придумать более правильный способ решения данного вопроса. Классная игра слов. Думаю, поймете. |
В простейшем случае все решается вызовом функции GetUserName.
Так же вынужден огорчить на компе может быть одновременно залогинено и работать несколько юзеров. Через Remote Desktop... |
Ой, я тоже, дайте тоже огорчить! Эксплорер может быть и не запущен (можно прописать shell=wincmd). А может быть запущен не для текущей оконной станции (WindowStation). А чтобы до этой станции достучаться, и выяснить, чья она, нужны нехилые права (вроде система + интерактивная служба)
|
в C# есть такая возможность посредством вызова Thread.CurrentPrincipal . Может, подобное есть и в Delphi?
http://forum.codenet.ru/showthread.php?t=23236 |
Время: 02:32. |
Время: 02:32.
© OSzone.net 2001-