Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Информация о наборе модулей процесса
Информация о наборе модулей процесса
Теперь выясним, как выполнить цикл по всем модулям, загруженным в рамках данного процесса. Напомним, что модуль - это общее название, используемое для обозначения *.dll (или *.exe). При доступе к ProcessModuleCollection с помощью свойства Process.Module вы получаете перечень всех модулей, задействованных в рамках соответствующего процесса – модулей .NET, модулей COM и традиционных библиотек C. Рассмотрите следующую вспомогательную функцию, которая перечислит модули конкретного процесса, заданного с помощью PID.
public static void EnumModsForPid(int pID) {
Process theProc;
try {
theProc = Process.GetProcessById(pID);
} catch {
Console.WriteLine("-› Извините, некорректное значение PID!");
Console.WriteLine("************************************n");
return;
}
Console.WriteLine("Загруженные модули для {0}:", theProc.ProcessName);
try {
ProcessModuleCollection theMods = theProc.Modules;
foreach (ProcessModule pm in theMods) {
string info = string.Format("-› Имя модуля: {0}", pm.ModuleName);
Console.WriteLine(info);
}
Console.WriteLine("************************************n");
} catch {
Console.WriteLine("Модулей не обнаружено!");
}
}
Чтобы увидеть пример возможного вывода программы, давайте проверим затрушенные модули для. процесса, выполняемого в рамках рассматриваемого здесь консольного приложения ProcessManipulator. Для этого запустите приложение, выясните значениеPID, соответствующее ProcessManipulator.exe, и передайте это значение методу EnumModsForPid() (не забудьте соответствующим образом обновить метод Main(). Вы, наверное, удивитесь, увидев весь список модулей *.dll, которые используются для такого простого консольного приложения (atl.dll, mfc42u.dll, oleaut32.dll и т.д.). На рис. 13.5 показан результат запуска.
Рис. 13.5. Перечень загруженных модулей в рамках выполняющегося процесса
- Взаимодействие с процессами в рамках платформы .NET
- Сущность процесса миграции
- Информация заголовочной страницы (Database header)
- Информация страниц данных
- V Совершенствование процесса
- Информация и ее измерение
- Использование сервера Yaffil внутри процесса
- 4. Стадии бизнес-процесса взаимодействия с клиентами
- 2.2.2.2 Состояния процесса
- 1.2 Процесс, контекст процесса и потоки
- Загрузка модулей Apache
- Информация для пользователей Windows ХР