Язык программирования C#9 и платформа .NET5 - Джепикс Филипп - Страница 273
- Предыдущая
- 273/642
- Следующая
Изменить размер шрифта:
273

Прежде чем двигаться дальше, необходимо уяснить, что тип
ProcessThreadProcessThreadSystem.ThreadingИсследование набора модулей процесса
Теперь давайте посмотрим, как реализовать проход по загруженным модулям, которые размещены внутри конкретного процесса. Когда речь идет о процессах, модуль — это общий термин, применяемый для описания заданной сборки
*.dll*.ехеProcessModuleCollectionProcess.Modulesstatic void EnumModsForPid(int pID){ Process theProc = null; try { theProc = Process.GetProcessById(pID); } catch(ArgumentException ex) { Console.WriteLine(ex.Message); return; } Console.WriteLine("Here are the loaded modules for: {0}", theProc.ProcessName); ProcessModuleCollection theMods = theProc.Modules; foreach(ProcessModule pm in theMods) { string info = $"-> Mod Name: {pm.ModuleName}"; Console.WriteLine(info); } Console.WriteLine("************************************\n");}Чтобы получить какой-то вывод, давайте просмотрим загружаемые модули для процесса, обслуживающего программу текущего примера (
ProcessManipulatorProcessManipulator.exeEnumModsForPid()*.dllGDI32.dllUSER32.dllole32.dllHere are (some of) the loaded modules for: ProcessManipulatorHere are the loaded modules for: ProcessManipulator-> Mod Name: ProcessManipulator.exe-> Mod Name: ntdll.dll-> Mod Name: KERNEL32.DLL-> Mod Name: KERNELBASE.dll-> Mod Name: USER32.dll-> Mod Name: win32u.dll-> Mod Name: GDI32.dll-> Mod Name: gdi32full.dll-> Mod Name: msvcp_win.dll-> Mod Name: ucrtbase.dll-> Mod Name: SHELL32.dll-> Mod Name: ADVAPI32.dll-> Mod Name: msvcrt.dll-> Mod Name: sechost.dll-> Mod Name: RPCRT4.dll-> Mod Name: IMM32.DLL-> Mod Name: hostfxr.dll-> Mod Name: hostpolicy.dll-> Mod Name: coreclr.dll-> Mod Name: ole32.dll-> Mod Name: combase.dll-> Mod Name: OLEAUT32.dll-> Mod Name: bcryptPrimitives.dll-> Mod Name: System.Private.CoreLib.dll...************************************Запуск и останов процессов программным образом
Финальными аспектами класса
System.Diagnostics.ProcessStart()Kill()StartAndKillProcess()На заметку! В зависимости от настроек операционной системы, касающихся безопасности для запуска новых процессов могут требоваться права администратора.
static void StartAndKillProcess(){ Process proc = null; // Запустить Edge и перейти на Facebook! try { proc = Process.Start(@"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", "www.facebook.com");
273
- Предыдущая
- 273/642
- Следующая
Перейти на страницу:
