Display process list windows

Display process list windows

В продолжение рубрики «Основы», сегодня речь пойдет о процессах в Windows. Разберем что это такое, на что они влияют и с помощью чего их можно контролировать.

p, blockquote 1,0,0,0,0 —>

В операционной системе «процессом» является экземпляр компьютерной программы, которая запущенна в данный момент. Сама по себе программа является всего лишь набором правил и кода, тогда как процесс является фактическим выполнением всего этого. Задачи одной и той же программы могут выполняться в нескольких процессах и, естественно, каждому активному процессу требуется определенное количество системных ресурсов, и чем больше их одновременно запущенно, тем медленнее начинает работать компьютер.

p, blockquote 2,0,0,0,0 —>

Многих начинающих пользователей мало интересует, какие скрытые процессы у них работают, а между тем, есть смысл поинтересоваться, не работают ли какие-нибудь фоновые программы и сервисы, в которых нет необходимости и которые при этом впустую расходуют процессорное время и память. Но прежде чем отключать ненужные процессы, чтобы освободить ресурсы компьютера, необходимо научиться разбираться в них, чтобы случайно не затронуть, например, процессы относящиеся к системным, многие из которых запускаются во время старта компьютера и критически необходимы для функционирования операционной системы и других приложений.

p, blockquote 3,0,0,0,0 —>

Следует также упомянуть, что большинство вирусов для осложнения обнаружения маскируют себя под какой-либо из процессов. Именно по этим причинам важно уметь их опознавать и идентифицировать.

p, blockquote 4,0,0,0,0 —>

Для того чтобы увидеть весь список активных процессов необходимо открыть «Диспетчер задач» (Task Manager). Сделать это можно тремя распространенными способами:

p, blockquote 5,0,0,0,0 —>

— комбинация клавиш ctrl + alt + del
— комбинация клавиш ctrl +shift + esc
или
— правый клик мыши на панели задач — пункт «Диспетчер задач».

p, blockquote 6,0,0,0,0 —>

Находясь в окне диспетчера, выберите вкладку «Процессы».

p, blockquote 7,0,0,0,0 —>

p, blockquote 8,0,0,0,0 —>

В открывшемся окне находится несколько столбцов с помощью которых мы и сможем получить первую необходимую информацию о том, какие процессы загружены и сколько ресурсов они потребляют.

p, blockquote 9,0,0,0,0 —>

1. Имя образа — название процесса
2. Пользователь — от какой учетной записи запущен процесс
3. ЦП — показывает загрузку процессора в процентном соотношении
4. Память — выделенный объем оперативной памяти
5. Описание — краткое описание того какая программа, служба или сервис инициирует данный процесс.

p, blockquote 10,0,0,0,0 —>

В самом низу окна показывается суммарное количество активных процессов, общая загрузка процессора и оперативной памяти в процентах.

p, blockquote 11,0,1,0,0 —>

Чтобы отключить ненужный процесс, необходимо выбрать один из них и нажать кнопку «Завершить процесс». Однако простое «Завершение процесса» просто отключит его до следующей перезагрузки Windows. Поэтому, если вы хотите навсегда избавиться от него, необходимо отключить его запуск в самом приложении, которое запускает этот процесс, или отключить активирующую его службу, или убрать из автозагрузки, а может и вовсе удалить ненужное приложение.

p, blockquote 12,0,0,0,0 —>

Если для получения информации о процессе вам будет недостаточно стандартных столбцов, можно добавить дополнительные. Для этого в главном меню Диспетчера задач нажмите «Вид» и в открывшемся меню выберите пункт «Выбрать/Добавить столбцы».

p, blockquote 13,0,0,0,0 —>

p, blockquote 14,0,0,0,0 —>

Выставьте галочки напротив пунктов «ИД процесса (PID)» и «Путь к образу». Нажмите «Ок».

p, blockquote 15,0,0,0,0 —>

p, blockquote 16,0,0,0,0 —>

p, blockquote 17,0,0,0,0 —>

Читайте также:  Тест графический интерфейс windows

Теперь в столбце ««Путь к образу» вы можете видеть расположение файла, который инициирует запущенный процесс.

p, blockquote 18,0,0,0,0 —>

А информация столбца «ИД процесса (PID)» будет полезна, если вам понадобится узнать, например, какая служба запускает процесс «Svchost.exe».

p, blockquote 19,0,0,0,0 —>

Заглянув немного вперед, почему мы выбрали именно его в качестве примера. Это важный системный процесс и нужен для включения и управления различных служб. Путаница у многих пользователей с этим процессом возникает от того что одновременно могут быть запущены несколько его экземпляров, но все от разных служб. И для того чтобы понять, какая именно служба относится к отдельно взятому процессу «Svchost.exe», нам и понадобится его числовой идентификатор — PID. Запомнив число, указанное в этом столбце переходим в «Диспетчере Задач» на вкладку «Службы».
Находясь в этом окне, нажмите левой кнопкой мыщи по заголовку столбца «ИД процесса». Список отсортируется и вы без труда сможете найти процесс по PID, посмотрев его описание в соответствующем столбце.

p, blockquote 20,0,0,0,0 —>

p, blockquote 21,0,0,0,0 —>

Сведений в этом окне конечно очень мало, однако позволяет примерно понять, какая именно служба запустила «Svchost.exe». Мы уже упоминали этот процесс в статье «svchost.exe — вирус или нет?»

p, blockquote 22,0,0,0,0 —>

Еще одна возможность увидеть, где располагается файл инициирующий запуск процесса, это нажать правой кнопкой мыши на одном из них и выбрать пункт «Открыть место хранения файла».

p, blockquote 23,1,0,0,0 —>

p, blockquote 24,0,0,0,0 —>

Со временем вы научитесь легко опознавать любые процессы. Для того, чтобы немного облегчить вам эту задачу, ниже приводим список наиболее типичных программных и системных процессов, большинство из которых по умолчанию запускаются вместе с операционной системой.

p, blockquote 25,0,0,0,0 —>

alg.exe — системный процесс. служба, являющаяся одним из компонентов ОС Windows необходимая для доступа к Интеренету и работы Брандмауэра. Если завершить этот процесс то подключение к интернет оборвется до следующей перезагрузки Windows.

p, blockquote 26,0,0,0,0 —>

ati2evxx.exe — является одним из компонентов драйверов для видеокарт AMD/ATI. Осуществляет работу горячих клавиш. Из-за большой нагрузки на ЦП рекомендуется отключить этот процесс и соответствующую службу.

p, blockquote 27,0,0,0,0 —>

BTTray.exe — компонент драйвера Bluetooth от Widcomm. Необходим для их работы.

p, blockquote 28,0,0,0,0 —>

csrss.exe — системный процесс Windows, обеспечивающий работу компонента «клиент/сервер». Не может быть отключен. Наиболее сильно подвержен заражению вирусов.

p, blockquote 29,0,0,0,0 —>

ctfmon.exe — системный процесс, отвечающий за языковую панель, индикатор, отображающий текущую раскладку клавиатуры и обеспечивающий поддержку других альтернативных методов ввода. Отключение этого процесса есстевстенно не рекомендуется.

p, blockquote 30,0,0,0,0 —>

dwm.exe — системный процесс Windows. Интегрирован в систему, начиная с Windows Vista и 7. Отвечает за графические эфекты рабочего стола, окон и меню, а также нормальное функционирование интерфейса «Aero».

p, blockquote 31,0,0,0,0 —>

explorer.exe — критический необходимый системный процесс проводника Windows, отвечающий за отображение рабочего стола и меню, возможность осуществления навигации пользователя. Не стоит его отключать.

p, blockquote 32,0,0,0,0 —>

issch.exe – процесс, позволяющий выполнять проверку обновлений в фоновом режиме стандартного инсталлятора Windows и других программ.

p, blockquote 33,0,0,0,0 —>

jusched.exe – процесс планировщика для автоматической проверки обновлений Java компонентов . Отключить автоматический запуск этого процесса можно путем выключения автоматической проверки обновлений в настройках Java (Пуск-Панель управления-Java).

p, blockquote 34,0,0,1,0 —>

lsass.exe – необходимый системный процесс, отвечающий за работу локального сервера проверки подлинности, политику безопасности и авторизации пользователей. Взаимодействует с службой winlogon. Не может быть завершен.

p, blockquote 35,0,0,0,0 —>

lsm.exe – системный процесс, управляющий удаленными подключениями к локальной системе. Не нужно отключать.

Читайте также:  Type emojis on windows

p, blockquote 36,0,0,0,0 —>

rthdcpl.exe – Процесс, обеспечивающий работу контрольной панели Realtek HD Audio. Иконка для этой программы находится в трее, рядом с часами. Завершение этого процесса может вызвать проблемы работы звука на системе.

p, blockquote 37,0,0,0,0 —>

rundll32.exe — Необходимй системный процесс Windows запускаемый утилитой командной строки. Позволяет запускать функции и команды DLL — файлов.

p, blockquote 38,0,0,0,0 —>

services.exe — важный системный процесс, отвечающий за за управление всеми системными службами.

p, blockquote 39,0,0,0,0 —>

smss.exe — необходимый системный процесс, отвечающий за запуск пользовательского сеанса, а также запуск процессов Winlogon и Csrss.exe. Завершать работу этого процесса нельзя.

p, blockquote 40,0,0,0,0 —>

spoolsv.exe — системный процесс. Отвечает за функции печати (принтер, факс и тд.).

p, blockquote 41,0,0,0,0 —>

svchost.exe — один из главных системных процессов, отвечающий за работу целого ряда сервисов и служб. Одновременно может работать несколько его копий, т.к. каждая содержит различные службы.

p, blockquote 42,0,0,0,0 —>

wininit.exe — необходимый системный процесс WIndows. ВЫполняет в фоновом режиме поддержку работы некоторых наиболее важных системных служб и программ, а также отвечает за своевременный запуск элементов автозагрузки.

p, blockquote 43,0,0,0,0 —>

winlogon.exe — Критически важный системный процесс. Отвечает за вход и выход пользователей в систему. Не может быть завершен.

p, blockquote 44,0,0,0,0 —>

wmiprvse.exe — системный процесс, один из компонентов Инструментария управления Windows. Отключение не рекомендуется.

p, blockquote 45,0,0,0,0 —> p, blockquote 46,0,0,0,1 —>

Controlling Processes and Threads in WinDbg

In WinDbg, the Processes and Threads window displays information about the systems, processes, and threads that are being debugged. This window also enables you to select a new system, process, and thread to be active.

Opening the Processes and Threads Window

To open the Processes and Threads window, choose Processes and Threads from the View menu. (You can also press ALT+9 or select the Processes and Threads button () on the toolbar. ALT+SHIFT+9 closes the Processes and Threads window.)

The following screen shot shows an example of a Processes and Threads window.

The Processes and Threads window displays a list of all processes that are currently being debugged. The threads in the process appear under each process. If the debugger is attached to multiple systems, the systems are shown at the top level of the tree, with the processes subordinate to them, and the threads subordinate to the processes.

Each system listing includes the server name and the protocol details. The system that the debugger is running on is identified as .

Each process listing includes the internal decimal process index that the debugger uses, the hexadecimal process ID, and the name of the application that is associated with the process.

Each thread listing includes the internal decimal thread index that the debugger uses and the hexadecimal thread ID.

Using the Processes and Threads Window

In the Processes and Threads window, the current or active system, process, and thread appear in bold type. To make a new system, process, or thread active, select its line in the window.

The Processes and Threads window has a shortcut menu with additional commands. To access the menu, select and hold (or right-click) the title bar or select the icon near the upper-right corner of the window (). The following list describes some of the menu commands:

Move to new dock closes the Processes and Threads window and opens it in a new dock.

Читайте также:  D link dge 530t драйвер windows 10

Always floating causes the window to remain undocked even if it is dragged to a docking location.

Move with frame causes the window to move when the WinDbg frame is moved, even if the window is undocked.

Additional Information

For other methods of displaying or controlling systems, see Debugging Multiple Targets. For other methods of displaying or controlling processes and threads, see Controlling Processes and Threads.

Записки программиста

Получаем список запущенных процессов на Windows API

11 декабря 2013

А тем временем я все продолжаю ностальгировать по сишечке и WinAPI. Сегодня совместными усилиями мы вспомним, как на WinAPI получить список запущенных процессов, а также динамических библиотек, используемых этими процессами.

Для этого нам понадобятся следующие процедуры и структуры.

CreateToolhelp32Snapshot создает снапшот запущенных процессов, модулей, нитей и так далее. Аргумент dwFlags определяет, снапшот чего именно мы хотим получить. Некоторые возможные значения — TH32CS_SNAPPROCESS, TH32CS_SNAPMODULE, TH32CS_SNAPTHREAD. Параметр dwProcessId задает идентификатор процесса, для которого создается снапшот. Может быть ненужным и устанавливаться в ноль в зависимости от dwFlags. В случае успеха процедура возвращает хэндл снапшота, который должен быть потом закрыт с помощью уже знакомой нам процедуры CloseHandle. В случае ошибки возвращается значение INVALID_HANDLE_VALUE, а подробности поможет узнать GetLastError.

Process32First принимает хэндл, полученный от CreateToolhelp32Snapshot, вызванной с dwFlags = TH32CS_SNAPPROCESS, а также указатель на структуру PROCESSENTRY32. Перед вызовом процедуры поле dwSize этой структуры должно быть установлено в sizeof ( PROCESSENTRY32 ) . В случае успеха возвращается TRUE, а в peProcessEntry записывается информация о первом процессе. В случае ошибки возвращается FALSE, а подробности поможет узнать GetLastError.

Процедура Process32Next работает полностью аналогично Process32First, но служит для получения второго и последующих процессов.

Еще мы воспользуемся процедурами Module32First и Module32Next, а также структурой MODULEENTRY32. Семантика у этих процедур полностью аналогична Process32First и Process32Next, только служат они для перечисления модулей в заданном процессе (CreateToolhelp32Snapshot с параметром dwFlags, равным TH32CS_SNAPMODULE).

Проще всего понять, как все это работает, посмотрев на пример кода:

VOID PrintModuleList ( HANDLE CONST hStdOut , DWORD CONST dwProcessId ) <
MODULEENTRY32 meModuleEntry ;
TCHAR szBuff [ 1024 ] ;
DWORD dwTemp ;
HANDLE CONST hSnapshot = CreateToolhelp32Snapshot (
TH32CS_SNAPMODULE , dwProcessId ) ;
if ( INVALID_HANDLE_VALUE == hSnapshot ) <
return ;
>

meModuleEntry. dwSize = sizeof ( MODULEENTRY32 ) ;
Module32First ( hSnapshot , & meModuleEntry ) ;
do <
wsprintf ( szBuff , L » ba: %08X, bs: %08X, %s \r \n » ,
meModuleEntry. modBaseAddr , meModuleEntry. modBaseSize ,
meModuleEntry. szModule ) ;
WriteConsole ( hStdOut , szBuff , lstrlen ( szBuff ) , & dwTemp , NULL ) ;
> while ( Module32Next ( hSnapshot , & meModuleEntry ) ) ;

VOID PrintProcessList ( HANDLE CONST hStdOut ) <
PROCESSENTRY32 peProcessEntry ;
TCHAR szBuff [ 1024 ] ;
DWORD dwTemp ;
HANDLE CONST hSnapshot = CreateToolhelp32Snapshot (
TH32CS_SNAPPROCESS , 0 ) ;
if ( INVALID_HANDLE_VALUE == hSnapshot ) <
return ;
>

peProcessEntry. dwSize = sizeof ( PROCESSENTRY32 ) ;
Process32First ( hSnapshot , & peProcessEntry ) ;
do <
wsprintf ( szBuff , L «=== %08X %s === \r \n » ,
peProcessEntry. th32ProcessID , peProcessEntry. szExeFile ) ;
WriteConsole ( hStdOut , szBuff , lstrlen ( szBuff ) , & dwTemp , NULL ) ;
PrintModuleList ( hStdOut , peProcessEntry. th32ProcessID ) ;
> while ( Process32Next ( hSnapshot , & peProcessEntry ) ) ;

INT main ( ) <
HANDLE CONST hStdOut = GetStdHandle ( STD_OUTPUT_HANDLE ) ;
PrintProcessList ( hStdOut ) ;
ExitProcess ( 0 ) ;
>

Сначала мы получаем список всех процессов в системе, а затем для каждого процесса выводим информацию о нем, а также список модулей. На мой взгляд, код этот очень простой и не нуждается в дополнительных пояснениях.

Как обычно, вы можете собрать эту программу не только под Visual Studio, но и при помощи MinGW, а затем запустить под Wine. В качестве домашнего задания можете изменить программу так, чтобы она также выводила информацию о нитях, используемых в каждом из запущенных процессов. Для этого вам понадобятся процедуры Thread32First, Thread32Next, а также структура THREADENTRY32.

Если у вас есть вопросы или дополнения, я буду рад ознакомиться с ними в комментариях.

Оцените статью