Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033

Получение списка процессов (Win7)

12.06.2012, 13:56. Показов 1165. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа сделал код , который делает скрин процессов , но вот какая странность - когда нажимаю скомпилировать и выполнить , программа показывает колличество процессов и сами процессы , а когда запускаю руками exe-шник показывает 0 процессов всё это в Windows 7 ultimate с правами админа , а в ХР то же с правами админа всё показывает , в чём такая ерунда может быть ? вот код -
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#define _WIN32_WINNT 0x0501
#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
#include <cstdio>
 
 
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
 
/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
int sc=0;
char sc2[]={0};
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
 
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */
 
    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);
 
    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
 
    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;
 
    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );
 
    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);
 
    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }
 
    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}
 
 
/*  This function is called by the Windows function DispatchMessage()  */
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PROCESSENTRY32 proc;
    HANDLE hSnap;
static char MY_Proc[MAX_PATH]={0};
static char razd[]=",";
 
 
    switch (message)                  /* handle the messages */
    {
 
case WM_CHAR:
 
    hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
    if (hSnap == NULL) {
              MessageBox(hwnd,"îøèáêà","",MB_OK);
                                                                                  }
else
    {
        if (Process32First(hSnap, &proc))
        {
            strcat(MY_Proc,proc.szExeFile);
            
            strcat(MY_Proc,razd);
            
            sc++;
            
            while (Process32Next(hSnap, &proc)){ 
        
        sc++;
 
        strcat(MY_Proc,proc.szExeFile);
        strcat(MY_Proc,razd);
        
        }
        }
    }
 
itoa(sc,sc2,10);
 
MessageBox(hwnd,sc2,"Èíôîðìàöèÿ",MB_OK);
 
MessageBox(hwnd,MY_Proc,"Èíôîðìàöèÿ",MB_OK);
 
 
 
     break;
 
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
Добавлено через 14 часов 4 минуты
Господа изменил немного программу теперь делает так - нажимаем клавишу первый раз показывает один не понятный процесс , нажимаем клавишу второй раз и показывает сразу весь список процессов , я так понимаю почему то первая итерация проходит впустую , но вот вопрос почему ?

Добавлено через 54 секунды
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
case WM_CHAR:
 
    hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
 
        Process32First(hSnap, &proc);
            
            strcat(MY_Proc,proc.szExeFile);
            
             strcat(MY_Proc,razd);
            
            sc++;
            
            while (Process32Next(hSnap, &proc)){ 
        
        sc++;
 
        strcat(MY_Proc,proc.szExeFile);
        strcat(MY_Proc,razd);
        
        }
 
itoa(sc,sc2,10);
 
MessageBox(hwnd,sc2,"Èíôîðìàöèÿ",MB_OK);
 
MessageBox(hwnd,MY_Proc,"Èíôîðìàöèÿ",MB_OK);
 
 
 
     break;
Добавлено через 3 часа 18 минут
Вопрос решён , тему можно закрыть .
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2012, 13:56
Ответы с готовыми решениями:

Получение списка путей процессов
Использую vs2010, win7 32. Вообщем,программа выводит список процессов. После получения handle процесса через OpenProcess с правами на...

Получение списка процессов Windows
привет всем! надо написать программу которая управляет процессорами windows для каждого процесса выводит имя,директорию,занимаемая...

Получение текущих процессов windows
Здравствуйте, как можно получить текущие процессы windows и занимаемые ими объемы памяти? Погуглил, но некоторые способы кривые: не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2012, 13:56
Помогаю со студенческими работами здесь

Модуль создания списка процессов и отключение интернета
Приветствую. Надо написать работу, задание по которой выглядит так: Разработка программного модуля, позволяющего создавать список...

Получение списка процессов
Попытался скинуть в файл список всех процессов: Вариант 1: PROCESSENTRY32 PE32; HANDLE hSnapshot =...

Получение списка процессов
Народ помогите Нужно написать скрипт для получения и записи в файл списка запущенных процессов(linux) Кто может поделитесь кодом

Получение списка запущенных процессов
Подскажите пожалуйста три вещи: 1. Как получить идентификатор потока (синим цветом - это я что-то пробовал сделать) 2. Как получить...

Получение списка процессов и закрытие процесса
Приветствую,столкнулся с такой проблемой ,вот код программы private void Form1_Load(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. fontSize": 18, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations":. . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru