Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка процессов по имени пользователя 
:(
    Опции темы
atvin
Дата 27.8.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Как получить имя пользователя, от имени которого запущен процесс (надо отсортировать процессы по имени пользователя, как в диспетчере задач: SYSTEM, NETWORK SERVICE, Имя _пользовалеля).
PM MAIL   Вверх
tol05
Дата 27.8.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Процесс - это System.Diagnostic.Process, верно?
Код

string userName = myProc.StartInfo.UserName;

и так для всех


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
atvin
Дата 27.8.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Цитата(tol05 @ 27.8.2007,  22:49)
Процесс - это System.Diagnostic.Process, верно?
Код

string userName = myProc.StartInfo.UserName;

и так для всех

Это не работает. Возвращает пустую строку.
PM MAIL   Вверх
Stepan_Lameroff
Дата 27.8.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



Цитата(atvin @  27.8.2007,  23:25 Найти цитируемый пост)
Это не работает. Возвращает пустую строку.


MSDN:
Цитата

If you did not use the Start method to start a process, the StartInfo property does not reflect the parameters used to start the process. For example, if you use GetProcesses to get an array of processes running on the computer, the StartInfo property of each Process does not contain the original file name or arguments used to start the process.


Код

        private static string GetProcessOwner(Process process)
        {
            try
            {
                ManagementObject classInstance =
                    new ManagementObject("root\\CIMV2",
                                         String.Format("Win32_Process.Handle='{0}'", process.Id),
                                         null);
                ManagementBaseObject outParams =
                    classInstance.InvokeMethod("GetOwner", null, null);

                return String.Format("{0}\\{1}", outParams["Domain"], outParams["User"]);
            }
            catch (ManagementException err)
            {
                Console.WriteLine("An error occurred while trying to execute the WMI method: {0}" + err.Message);
            }

            return String.Empty;
        }


Если WMI не устраивает, то см. WinAPI ф-цию CreateToolhelp32Snapshot (declared in Tlhelp32.h)



Это сообщение отредактировал(а) Stepan_Lameroff - 27.8.2007, 23:45
PM MAIL   Вверх
atvin
Дата 27.8.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Цитата(Stepan_Lameroff @ 27.8.2007,  23:44)
Если WMI не устраивает, то см. WinAPI ф-цию CreateToolhelp32Snapshot (declared in Tlhelp32.h)

Посмотрел я CreateToolhelp32Snapshot - чето сложновато и не понятно.
А в твоем примере Studio не понимает: ManagementObject и ManagementBaseObject. где они описаны?
PM MAIL   Вверх
Stepan_Lameroff
Дата 28.8.2007, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



using System.Management;//(+ reference в проект на System.Management)
WinAPI пример доделываю.
PM MAIL   Вверх
atvin
Дата 28.8.2007, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Посмотрел в MSDN - System.Management. Но у меня в System нету Management. Выдает ошибку при компиляции: The type or namespace name 'Management' does not exist in the namespace 'System' (are you missing an assembly reference?). В чем может быть проблема?

Это сообщение отредактировал(а) atvin - 28.8.2007, 00:55
PM MAIL   Вверх
Stepan_Lameroff
Дата 28.8.2007, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



WinAPI пример

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  Program.rar 1,90 Kb
PM MAIL   Вверх
Stepan_Lameroff
Дата 28.8.2007, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



Я же написал
Цитата(Stepan_Lameroff @  28.8.2007,  00:37 Найти цитируемый пост)
using System.Management;//(+ reference в проект на System.Management)

Добавьте в проект ссылку (REFERENCE) на System.Management


Это сообщение отредактировал(а) Stepan_Lameroff - 28.8.2007, 01:20
PM MAIL   Вверх
atvin
Дата 28.8.2007, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Цитата(Stepan_Lameroff @ 28.8.2007,  01:09)
Добавьте в проект ссылку (REFERENCE) на System.Management

Можешь поподробней объяснить как это сделать, я такое никогда не делал.

А файл скачать не могу. Пишет "Обнаружена ошибка: Эта функция запрещена для Гостей". может на ящик скинь мне?

Добавлено через 7 минут и 28 секунд
С добавлением в проект ссылки (REFERENCE) на System.Management я разобрался.
А вот со скачкой файла - нет.
PM MAIL   Вверх
atvin
Дата 28.8.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Огромное спасибо smile . Зараболо способом WMI. Как я давно искал ответ на этот вопрос.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.