|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
Как создать CreateProcess не блокируя основную программу?09.03.2015, 14:19. Показов 3653. Ответов 20
Метки нет (Все метки)
Как создать CreateProcess не блокируя саму программу? Нашёл вот это решение, но 2-й процесс почему-то не запускается!
![]() Помогите, пожалуйста разобраться...
0
|
||||||
| 09.03.2015, 14:19 | |
|
Ответы с готовыми решениями:
20
Создать программу, в которой с помощью функции CreateProcess порождается процесс выполняющий чтение файла и вывод его на экран
Как из кода IronPython вернуть значение в основную программу? |
|
Ушел с форума
|
|
| 09.03.2015, 14:28 | |
|
Сделайте сразу два вызова CreateProcess, а затем MsgWaitForMultipleObjects
ждите, пока хэндлы не перейдут в сигнальное состояние. Кстати, ждать на pi.hThread не совсем правильно: первичный поток может завершиться, а процесс будет все еще работать. Лучше ждать на pi.hProcess.
1
|
|
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 09.03.2015, 14:32 [ТС] | ||||||
|
На самом деле процессов 5 и они должны выполняться строго по очереди. Как здесь быть?
0
|
||||||
|
Ушел с форума
|
|
| 09.03.2015, 14:38 | |
|
Так в чем проблема ? В том, что программа блокируется на вызове
WaitForMultipleObjects или в том, что надо запускать процессы по очереди ?
0
|
|
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 09.03.2015, 14:40 [ТС] | ||||||
|
Программа не блокируется. Но если писать так, то после 1-го процесса ничего не присходит:
0
|
||||||
|
Ушел с форума
|
|
| 09.03.2015, 14:57 | |
|
Конечно не происходит. Ведь после запуска первого процесса стоит return (9-ая строка).
0
|
|
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 09.03.2015, 15:22 [ТС] | ||||||
|
Все равно после 1-го процесса ничего не происходит. return я поубирал
Задача в том, что нужно запускать процессы по очереди, при этом они не должны подвешивать мое приложение на время их выполнения. Вот весь кусок кода:
заметил что приложение на КРЕСТИК закрывается после 2-го нажатия
0
|
||||||
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
||||||||||||||||
| 09.03.2015, 22:26 | ||||||||||||||||
|
не совсем по теме, но я б еще сделал функцию запуска процесса (с параметром команды), хотя бы для того, чтоб так много не писать
Добавлено через 1 час 2 минуты сам поток
ну и запуск потока в форме
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
|
| 10.03.2015, 10:34 [ТС] | |
|
я пишу на C++ Builder 6.0
Он ругается на на отсутствие #include <System.Classes.hpp> Я так понимаю этот файл есть в Embarcadero RAD Studio?
0
|
|
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
|
| 10.03.2015, 11:19 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 10.03.2015, 12:08 [ТС] | ||||||
|
А можно ли как-то в этой процедуре, а не в отдельном .cpp файле указывать команды для запуска этих процессов, ну типа?
0
|
||||||
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
||||||||||||||||
| 10.03.2015, 12:52 | ||||||||||||||||
|
kochev_vladimir, не совсем так но все-же
поток:
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 10.03.2015, 14:21 [ТС] | ||||||
|
ОТЛИЧНО! Но мне нужно запускать процессы не notepad.exe/calc.exe, a
Добавлено через 49 минут Весь смысл в том, что нужно 5-6 раз поочередно выполнять запуск одного и того же консольного приложения "ffmpeg.exe" с разными параметрами, но запуск следующего приложения должен осуществляться по завершении выполнения предыдущего. Эти все процессы не должны вешать основную программу.
0
|
||||||
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
||||||
| 10.03.2015, 14:29 | ||||||
|
kochev_vladimir, если есть пробелы, то команду нужно взять в кавычки, а потом добавить разделитель (в даном примере ";")
Как-то так
0
|
||||||
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
||||||
| 10.03.2015, 16:45 [ТС] | ||||||
|
Получилось! Но еще желательно, чтобы работа кода приостановилась, а то сразу при запуске первого процесса выполняется ShowMessage("Готово!");. Это можно как-то реализовать?
мне нужно перебрать в цикле файлы и каждый файл будет подставляться в комм. строку консольных приложений (пример ниже). А у меня если файла три, то запускаются сразу 3 потока и работают одновременно, но при этом порядок запуска комманд внутри потоков сохраняется. И выходит, что ShowMessage("Готово!"); выполняется сразу, а в это время команды еще не выполнились до конца.
0
|
||||||
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
|
| 11.03.2015, 00:16 | |
|
kochev_vladimir, може б ты про потоки почитал, а то мне стало не интересно тебе помогать ..........
0
|
|
|
0 / 0 / 0
Регистрация: 09.03.2015
Сообщений: 10
|
|
| 11.03.2015, 00:19 [ТС] | |
|
я не программер, так когда-то что-то писал, а сейчас срочно понадобилось (((. Прости, уж, земляк. Ну больше не у кого спросить. Про потоки вообще узнал только вчера. С классами не дружу(((.
Помоги, пожалуйста... Ты (и я) почти у цели!!
0
|
|
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
|
| 11.03.2015, 00:27 | |
|
kochev_vladimir, давай по очереди. У меня этот код работает. Что у тебя не так?
0
|
|
| 11.03.2015, 00:27 | |
|
Помогаю со студенческими работами здесь
20
Как прослушивать сразу все порты на компьютере, не блокируя
Составить программу для вычисления и вывода в виде таблицы следующих функций. Кроме этого добавить в основную программу две подпрограммы: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
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
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|