Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Список пользователей Windows


Автор: Lamak 25.5.2006, 22:49
Как получить список пользователей Windows?(Желательно засунуть это все в ComboBox.)
И как узнать  login текущего пользователя? 

Автор: Void 25.5.2006, 23:26
Код
using System.Management;

ManagementObjectSearcher searcher = new ManagementObjectSearcher(
    new ObjectQuery("Select * From Win32_UserAccount"));
foreach (ManagementObject user in searcher.Get())
{
    Console.WriteLine(user["Name"]);
}
 

Автор: Lamak 27.5.2006, 17:56
у меня выдаёт Error в этой сроке
Код

using System.Management;

сам error:
The type or namespace name 'Management' does not exist in the class or namespace 'System' (are you missing an assembly reference?)

у меня .net 2003 года  ,устанавливал якобы Full -   как быть?

А нельзя как нибудь по другому,что в C# нет поддержки WinAPI как в C++ Builder. 


И остаётся вопрос: 
"Как узнать  login текущего пользователя?"  


 

Автор: mr.DUDA 27.5.2006, 18:21
Пользователь, под которым исполняется программа (это тот же юзер, который залогинился, если прога - не сервис и не запущена с явным указанием юзера), доступен через св-во Thread.CurrentPrincipal.Identity.Name. А System.Management имхо появился только в .NET 2.0 

Автор: Void 27.5.2006, 18:57
Цитата(Lamak @  27.5.2006,  19:56 Найти цитируемый пост)
The type or namespace name 'Management' does not exist in the class or namespace 'System' (are you missing an assembly reference?)

Народ, когда научимся сообщения об ошибках понимать, а…
Project > Add Reference > добавить System.Management.dll
Цитата(mr.DUDA @  27.5.2006,  20:21 Найти цитируемый пост)
А System.Management имхо появился только в .NET 2.0

Ничего подобного smile 

Автор: mr.DUDA 28.5.2006, 15:15
Цитата(Void @  27.5.2006,  17:57 Найти цитируемый пост)
Project > Add Reference > добавить System.Management.dll

Во-во, у меня просто в тот раз не было студии проверить, существует ли такая DLL... Кстати, вопросы подобного рода в последнее время и правда задают слишком часто, в чём тут дело не пойму  smile 

Цитата(Void @  27.5.2006,  17:57 Найти цитируемый пост)
Ничего подобного

Void, и мсдн-а старого не было, поэтому пишу "имхо", зная что на 50% неправ  smile  

Автор: Lamak 29.5.2006, 23:18
1)
Этот код 
Код

using System.Management;

ManagementObjectSearcher searcher = new ManagementObjectSearcher(
    new ObjectQuery("Select * From Win32_UserAccount"));
foreach (ManagementObject user in searcher.Get())
{
    Console.WriteLine(user["Name"]);
}

выдаёт абсолютно всех  пользователей:

ACTUser | ASPNET | DUKE | HelpAssistant | IUSR_MYSERVER | IWAM_MYSERVER | Lida | 
SQLDebugger | SUPPORT_388945a0 | VUSR_MYSERVER | Администратор | Гость | 

А как сделать так,чтоб он выводил только тех которых показавает винда(WinXP) при включении копьютера(ну тобиш реалных живых юзверей)?
Т.е. чтоб на моей машине выдавало:
 DUKE | Lida

2)
А этот код 
Код

using System.Threading; 

string s="";
s=Thread.CurrentPrincipal.Identity.Name;    
MessageBox.Show(s);

выдаёт почему-то пустую строку? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)