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

Создание дочерних процессов

28.04.2020, 16:43. Показов 2376. Ответов 7

Студворк — интернет-сервис помощи студентам
Нужна помощь! Нужно изменить программу примера:
 заменить дочерний процесс примера на заданный;
 вывести PID дочернего процесса в консоль;
 дождаться завершения дочернего процесса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <TCHAR.h>
 
int main (int argc, char* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
TCHAR pn[] = _T("C:\\Windows\\explorer.exe");
 
ZeroMemory (&si, sizeof (STARTUPINFO));
si.cb = sizeof (STARTUPINFO);
ZeroMemory (&pi, sizeof(pi));
if (!CreateProcess (NULL, pn, NULL, NULL, FALSE,
0, NULL, NULL, &si, &pi));
return 0;
Sleep(1000);
CloseHandle (pi.hProcess);
CloseHandle (pi.hThread);
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2020, 16:43
Ответы с готовыми решениями:

Запуск дочерних процессов
Здравствуйте, подскажите, пожалуйста: если я хочу запустить три дочерних процесса при помощи функции CreateProcess, то мне нужно...

Поиск процесса и его дочерних процессов
Всем привет! Сначала опишу ситуацию на примере &quot;CodeBlocks&quot;, чтобы стало понятно чего я хочу: У меня открыт проект в...

Не работает безопасное завершение дочерних процессов с использованием CreateRemoteThread
Необходимо завершать процесс и все его дочерние процессы в программе на Microsoft Visual C++ Используется немного измененный код. ...

7
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.04.2020, 17:02
Лучший ответ Сообщение было отмечено IGRVKH как решение

Решение

Цитата Сообщение от IGRVKH Посмотреть сообщение
дождаться завершения дочернего процесса.
C++
1
::WaitForSingleObject(pi.hProcess, INFINITE);
Добавлено через 52 секунды
Цитата Сообщение от IGRVKH Посмотреть сообщение
вывести PID дочернего процесса в консоль;
C++
1
std::cout << pi.dwProcessId << std::endl;
1
1 / 1 / 0
Регистрация: 10.01.2020
Сообщений: 130
28.04.2020, 17:25  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
std::cout << pi.dwProcessId << std::endl;
у std пишет, что IntelliSense: имя, за которым следует выражение "::", должно определять класс или пространство имен
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.04.2020, 17:28
Цитата Сообщение от IGRVKH Посмотреть сообщение
у std пишет, что IntelliSense: имя, за которым следует выражение "::", должно определять класс или пространство имен
Сделай #include <iostream>
1
1 / 1 / 0
Регистрация: 10.01.2020
Сообщений: 130
28.04.2020, 17:40  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Сделай #include <iostream>
Сделал, вроде бы все работает, но ничего кардинально не меняется! Может я не в то место написал?
Миниатюры
Создание дочерних процессов  
0
1 / 1 / 0
Регистрация: 10.01.2020
Сообщений: 130
28.04.2020, 17:41  [ТС]
Цитата Сообщение от IGRVKH Посмотреть сообщение
Сделал, вроде бы все работает, но ничего кардинально не меняется! Может я не в то место написал?
и консоль быстро закрывается, хотя я меняю значение sleep
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.04.2020, 17:45
Цитата Сообщение от IGRVKH Посмотреть сообщение
Сделал, вроде бы все работает, но ничего кардинально не меняется! Может я не в то место написал?
Ну, ты сначала закрываешь хэндлы, а потом пытаешься что-то от них ждать

Добавлено через 2 минуты
Цитата Сообщение от IGRVKH Посмотреть сообщение
и консоль быстро закрывается, хотя я меняю значение sleep
Цитата Сообщение от IGRVKH Посмотреть сообщение
if (!CreateProcess (NULL, pn, NULL, NULL, FALSE,
0, NULL, NULL, &si, &pi));
return 0;
C++
1
2
if (!CreateProcess (NULL, pn, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) /////////////////;
        return 0;
0
1 / 1 / 0
Регистрация: 10.01.2020
Сообщений: 130
28.04.2020, 17:53  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
if (!CreateProcess (NULL, pn, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) /////////////////;
        return 0;
Спасибо, все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2020, 17:53
Помогаю со студенческими работами здесь

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

Создание дочерних окон в окне
Всем привет!!! Как мне создать дочерние окна в главном окне программы,пример таких окон на скриншоте,как VS

Создание своих дочерних окон
Всем здрасьте ! У меня проблема с Моими дочерними окнами. Может где надо какой стиль добавить, может ещё что ... Я не знаю :С В...

Создание 2-х типов дочерних окон
Помогите, совсем профан в этом. Не создается второе дочернее окно. В чем ошибка? // 123.cpp : Defines the entry point for the...

Создание и закраска Дочерних окон (Шахматная доска)
Суть задачи: Создать из дочерних окон доску закрашенную в шахматном порядке,при нажатий на ячейку,ячейка должна менять цвет.(ч\б) Не...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru