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

Создание и удаление процесса

24.10.2019, 18:47. Показов 1271. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть вопроса в том, что в колонке "Запуск процессов" нужно написать имя процесса и если такой существует вывести его в колонку и соответственно создать(например notepad.exe - он открывается), затем нажать на удаление и удалить его же(notepad.exe) закрывается. Вся проблема в том, что не знаю как сделать так чтобы программа считывала текст из "колонки"
Заранее извиняюсь за формулировку вопроса, сам уже запутался
Сейчас код это не больше чем просто визуал
Сам код:
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
#include "framework.h" 
#include <tchar.h> 
#include <windows.h> 
 
 
#include "shellapi.h"
 
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
TCHAR string1[] = _T("Process1");
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX param;
    param.hInstance = hInstance;
    param.lpszClassName = L"MCLASS";
    param.lpfnWndProc = WindowProcedure;
    param.style = CS_DBLCLKS;
    param.cbSize = sizeof(WNDCLASSEX);
    param.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    param.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    param.hCursor = LoadCursor(NULL, IDC_ARROW);
    param.lpszMenuName = NULL;
    param.cbClsExtra = 0;
    param.cbWndExtra = 0;
    param.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH);
    if (!RegisterClassEx(&param))
        return 0;
    hwnd = CreateWindowEx(0, L"MCLASS", _T("Диспетчер процессов"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 400, HWND_DESKTOP, NULL, hInstance, NULL);
    ShowScrollBar(hwnd, SB_VERT, TRUE);
    ShowWindow(hwnd, nCmdShow);
 
    while (GetMessage(&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}
 
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HINSTANCE hInst;
    static HWND COMB, LIST, StaticWindow1, StaticWindow2;
    static HWND hbt1, hbt, hbt2;
 
    switch (message)
    {
    case WM_CREATE:hInst = ((LPCREATESTRUCT)lParam)->hInstance;
        hbt = CreateWindowEx(0, (L"BUTTON"), _T("Запуск процессов"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 165, 100, 125, 30, hwnd, NULL, hInst, NULL);
        hbt1 = CreateWindowEx(0, (L"BUTTON"), _T("Удаление процессов"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 305, 100, 145, 30, hwnd, NULL, hInst, NULL);
        hbt2 = CreateWindowEx(0, (L"BUTTON"), _T("Выход"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 465, 100, 125, 30, hwnd, NULL, hInst, NULL);
        COMB = CreateWindowEx(0, (L"COMBOBOX"), _T("Ввод процесса"), WS_CHILD | BS_PUSHBUTTON, 164, 152, 125, 203, hwnd, NULL, hInst, NULL);
        LIST = CreateWindowEx(0, (L"LISTBOX"), _T("Активные процессы"), WS_CHILD | BS_PUSHBUTTON, 305, 152, 144, 195, hwnd, NULL, hInst, NULL);
        StaticWindow1 = CreateWindowEx(0, (L"Static"), _T("Ввод процесса:"), WS_CHILD | BS_PUSHBUTTON | WS_BORDER, 165, 131, 125, 20, hwnd, (HMENU)1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
        StaticWindow2 = CreateWindowEx(0, (L"Static"), _T("Активные процессы:"), WS_CHILD | BS_PUSHBUTTON | WS_BORDER, 305, 131, 145, 20, hwnd, (HMENU)1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
        break;
    case WM_DESTROY: PostQuitMessage(0); break;
    case WM_COMMAND:
        if (lParam == (LPARAM)hbt1)
        {
            ShowWindow(LIST, SW_SHOWNORMAL);
            ShowWindow(StaticWindow2, SW_SHOWNORMAL);
 
        }
        if (lParam == (LPARAM)hbt)
        {
            ShowWindow(COMB, SW_SHOWNORMAL);
            ShowWindow(StaticWindow1, SW_SHOWNORMAL);
            SendMessage(COMB, CB_ADDSTRING, 0, (LPARAM)string1);
            STARTUPINFO si = { sizeof(si) };
        
        }
        if (lParam == (LPARAM)hbt2)
            PostQuitMessage(0);
        break;
    default: return DefWindowProc(hwnd, message, wParam, lParam);
    }
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2019, 18:47
Ответы с готовыми решениями:

Запуск и удаление процесса
Добрый день! Как сделать Таsk Маnаgеr на winapi с++ чтобы было две кнопки запустить процес и удалить. Как реализовать? Помогите пожалуйста!

Создание процесса
Доброго времени суток! Пытаюсь создать процесс. В книге Рихтера - Создание эффективных Win32-приложений нашел такой код: STARTUPINFO...

Создание процесса
Меня интересует вопрос: процесс можно создавать - открывае .exe файл. Можно ли создать процесс из самого кода, всмысле - под некую...

7
фрилансер
 Аватар для Алексей1153
6445 / 5640 / 1128
Регистрация: 11.10.2019
Сообщений: 15,007
24.10.2019, 18:55
что за колонка ?

Добавлено через 3 минуты
если это про комбобокс речь, то https://docs.microsoft.com/en-... etitemdata
0
0 / 0 / 0
Регистрация: 03.10.2018
Сообщений: 3
24.10.2019, 18:58  [ТС]
Да, комбокс
0
фрилансер
 Аватар для Алексей1153
6445 / 5640 / 1128
Регистрация: 11.10.2019
Сообщений: 15,007
24.10.2019, 19:02
точнее https://docs.microsoft.com/en-... -getlbtext
или
https://docs.microsoft.com/en-... findstring
0
 Аватар для CurlyJuly
2 / 2 / 0
Регистрация: 28.10.2019
Сообщений: 6
28.10.2019, 21:51
а как ты закрываешь процесс?
0
2622 / 1633 / 266
Регистрация: 19.02.2010
Сообщений: 4,338
28.10.2019, 22:27
Цитата Сообщение от CurlyJuly Посмотреть сообщение
а как ты закрываешь процесс?
При создании процесса надо просто передать в CreateProcess() последним аргументом не NULL - а адрес экземпляра структуры типа PROCESS_INFORMATION.
CreateProcess() запишет в поля этой структуры данные о созданном процессе, в т.ч. хэндл процесса.
Затем этот хэндл можно будет сунуть в функцию TerminateProcess() для убивства подопытного кролика
0
 Аватар для CurlyJuly
2 / 2 / 0
Регистрация: 28.10.2019
Сообщений: 6
28.10.2019, 22:37
а у меня воть не получается
PROCESS_TERMINATE
0
2622 / 1633 / 266
Регистрация: 19.02.2010
Сообщений: 4,338
29.10.2019, 11:40
CurlyJuly, Я написал в контексте этой темы (ТСу нужно создавать и удалять процессы, и он может при создании процесса запомнить всю нужную инфу) - а Вашу тему не успел вчера увидеть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2019, 11:40
Помогаю со студенческими работами здесь

Создание процесса (калькулятор)
Здравствуйте . У меня есть пример программы , которая создаёт процесс &quot;Калькулятор&quot; . Вот пытаюсь всё с ней разобраться , но некоторые...

Создание дочернего процесса
Уважаемые форумчане, у меня возник такой вопрос: Возможно ли средствами с++ создать дочерний процесс для определенного процесса? так...

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

Создание нового процесса
Добрый день, подскажите, как создать новый процесс, какие библиотеки подключать?

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru