Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 14

Одинаковые имена процессов

02.12.2012, 14:59. Показов 1015. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "stdafx.h"
#include <Windows.h>
#include <tlhelp32.h>
#include <clocale> 
#include <iostream>
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "RUS");
 
    printf("%3s%s%3s%s%20s%s"," ","PID"," ","Имя"," ","\n");
HANDLE Hs=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 P;
P.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(Hs,&P))
{
        do
    {
    printf ("%6d",P.th32ProcessID);
    wprintf(L"%1s %-30s \n"," ",P.szExeFile);       
    }
 
    while (Process32Next(Hs,&P));
    CloseHandle(Hs);
metka: puts("Введите PID процесса; Для выхода нажмте 1");
    int n;
    scanf("%d",&n);
    if(n==1)return 1;
    
    HANDLE Hs2=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,n);
            MODULEENTRY32 M;
            M.dwSize = sizeof(M);
            if (Module32First(Hs2,&M)){
                
                do{
                    wprintf(L"%20s %s \n"," ",M.szModule);
                }while (Module32Next(Hs2,&M));
            CloseHandle(Hs2);
            goto metka;
            }       
}
}
Есть задача - вывести список выполняющихся процессов с указанием ID, имени. Одинаковые имена процессов должны выводится только один раз.

Подскажите, как реализовать, чтобы одинаковые имена процессов выводились только один раз.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2012, 14:59
Ответы с готовыми решениями:

Не показывает имена процессов
#include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #include &lt;tlhelp32.h&gt; #include &lt;iostream&gt; using namespace std; void ProcessList() ...

Службы, имена процессов и fatal error LNK1120
Доброй ночи, уважаемые господа. Ко мне поступило задание: написать dll и приложение к нему, чтобы отображались процессы, имена процессов,...

Могут ли у процессов с разными идентификаторами быть одинаковые дескрипторы?
Пишу программу.. и появились вот такие вопросы.. могут ли у процессов с разными идентификаторами быть одинаковые дескрипторы? и имена у...

2
 Аватар для igorrr37
2872 / 2019 / 991
Регистрация: 21.12.2010
Сообщений: 3,754
Записей в блоге: 9
02.12.2012, 16:37
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <Windows.h>
#include <tlhelp32.h>
#include <clocale>
#include <tchar.h>
#include <cstdio>
#include <map>
#include <string>
using namespace std;
 
int main(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "RUS");
    printf("%-8s%s\n\n","PID","Имя");
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 P;
    P.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(hSnapshot, &P))
    {
        std::map<std::basic_string<TCHAR>, DWORD> map;
        do
        {
            map[P.szExeFile] = P.th32ProcessID;
        }
        while (Process32Next(hSnapshot, &P));
        for(std::map<std::basic_string<TCHAR>, DWORD>::const_iterator ib = map.cbegin(); ib != map.end(); ++ib)
        {
            _tprintf (_T("%-8d%s\n"), ib->second, ib->first.c_str());
        }
        CloseHandle(hSnapshot);
        metka: puts("Введите PID процесса; Для выхода нажмте 1");
        int n;
        scanf("%d",&n);
        if(n==1)return 1;
 
        HANDLE Hs2=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,n);
        MODULEENTRY32 M;
        M.dwSize = sizeof(M);
        if (Module32First(Hs2,&M))
        {
            do
            {
                wprintf(L"%20s %s \n"," ",M.szModule);
            }
            while (Module32Next(Hs2,&M));
            CloseHandle(Hs2);
            goto metka;
        }
    }
    else
        perror("Process32First failed\n");
    return 0;
}
0
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 14
03.12.2012, 14:17  [ТС]
А как можно реализовать без map?
А то никак не могу понять..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2012, 14:17
Помогаю со студенческими работами здесь

Найти среди выполняющихся процессов имена процессов, имеющих одинаковые ProductVersion
нахождения среди выполняющихся процессов имен процессов, имеющих одинаковые ProductVersion. Добавлено через 5 часов 10 минут Совсем...

Найти среди выполняющихся процессов имена процессов, выполняющихся в двух или более экземпляров
Есть два задания: 1. Найти среди выполняющихся процессов имена процессов, выполняющихся в двух или более экземпляров. 2. Найти среди...

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

Одинаковые имена в формах
Здравствуйте. Могу ли я использовать на странице сразу несколько форм с одинаковыми атрибутами name? Пример: &lt;form id='form_1'&gt; ...

Вывод PID процессов и их имена
Приветствую,есть такой код который выводит название процессов,но нужно чтоб еще выводил PID процессов using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru