|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
||||||
Закрытие процесса11.08.2015, 16:35. Показов 7176. Ответов 22
Метки нет (Все метки)
Здравствуйте.
У меня есть такой код:
Что я делаю не так ? Как бороться с cmd.exe и conhost.exe ? Добавлено через 10 минут Как узнать существует ли процесс по PID ? Добавлено через 12 минут Что возвращает OpenProcess, когда вызывается с PROCESS_TERMINATE?
0
|
||||||
| 11.08.2015, 16:35 | |
|
Ответы с готовыми решениями:
22
Активация и закрытие запущенного процесса при создании процесса создаётся ярлык в трее, по окончании процесса он не убираетс сам, как его убрать оттуда? Как узнать id процесса по имени процесса? |
|
Администратор
|
|||
| 11.08.2015, 18:59 | |||
|
VoltDeMar, начать следует с разбирательства почему процессы не завершаются. Если это слишком долгая команда, это одно. Если ты запускаешь cmd без ключа /c чтобы он автоматически завершился это другое. В приведенном тобой коде вызов OpenProcess является лишним т.к. у тебя уже есть дексприптор процесса в pi.hProcess, плюс ты игнорируешь возвращаемое значение.
1
|
|||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
||||||
| 12.08.2015, 08:53 [ТС] | ||||||
|
Добавлено через 38 секунд Добавлено через 37 секунд
0
|
||||||
|
Ушел с форума
|
|||||||||
| 12.08.2015, 09:14 | |||||||||
|
На один и тот же объект может существовать две и более ссылок. В данном случае оба хэндла ссылаются на один и тот же процесс, только первый был получен на CreateProcess, а второй на OpenProcess. Вот тут советую почитать: Преодолевая ограничения Windows: дескрипторы http://blogs.technet.com/b/mar... 88042.aspx "Внутреннее устройство Windows, 6-1" (М. Руссинович, Д. Соломон) См. "Диспетчер объектов / Дескрипторы объекта и таблица дескрипторов процесса" Handles and Objects https://msdn.microsoft.com/en-... 85%29.aspx Для завершения есть функции ExitProcess и TerminateProcess. означающий, что пришла пора завершать работу, а затем ждут, когда это произойдет. У хэндлов процессов и потоков есть полезное свойство - они переходят в сигнальное состояние, когда соответствующий объект ядра (т.е. объект "процесс" или "поток") уничтожается, и на них можно ждать:
1
|
|||||||||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 13.08.2015, 09:35 [ТС] | |
|
0
|
|
|
Ушел с форума
|
|
| 13.08.2015, 09:49 | |
|
Event Objects
https://msdn.microsoft.com/en-... 85%29.aspx
1
|
|
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 13.08.2015, 10:54 [ТС] | |
|
Если event существует вызывать ExitProcess или Event-ы позволяют какой то ещё функционал?
Есть ли возможность влияния операций в процесс (Например, передать ExitProcess процессу из другого процесса, чтобы он выполнил это от себя)?
0
|
|
|
Ушел с форума
|
||
| 13.08.2015, 11:37 | ||
|
друг другу о том, что некое событие произошло. Например, поток Consumer ждет события "DataReady" (WaitForSingleObject). Поток Producer выполняет подготовку данных, а затем взводит событие (SetEvent). Consumer просыпается, забирает данные и делает свою часть работы.
1
|
||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 13.08.2015, 11:47 [ТС] | |
|
Какой самый быстрый способ вызвать ExitProcess?
0
|
|
|
Ушел с форума
|
|
| 13.08.2015, 11:55 | |
|
Родительский процесс создает event в несигнальном состоянии.
Затем запускает дочерний процесс. Дочерний процесс открывает этот же event (по имени, например) и устанавливает ожидание (в отдельном потоке или через registered wait). Когда родитель хочет, чтобы дочерний процесс завершился, он взводит event. В дочернем завершается ожидание, всем потокам рассылаются соответствующие уведомления, если нужно, после чего один из них делает ExitProcess. Это, так сказать, грамотная схема, где все ресурсы будут аккуратно закрыты и потоки завершат управление в известных и безопасных точках. Можно сделать грубее - просто TerminateProcess и все
1
|
|
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 13.08.2015, 12:08 [ТС] | |
|
ExitProcess требует EXitCode, GetExitCodeProcess() требует хендл, чтобы получить хендл нужно тоже вызвать что то... Как сделать эту цепочку минимально короткой?
0
|
|
|
Ушел с форума
|
|||
| 13.08.2015, 12:13 | |||
|
1
|
|||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 13.08.2015, 12:31 [ТС] | |
|
0
|
|
|
Ушел с форума
|
|||||||||||
| 13.08.2015, 12:56 | |||||||||||
|
parent:
2
|
|||||||||||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 17.08.2015, 12:16 [ТС] | |
|
А как мне проверить что процесс завершился? Может ли процесс выполнять заданное действие последним, после команды exit(mainret) (например удалить event, только в случае если процесс полностью завершен)?
0
|
|
|
Ушел с форума
|
|||
| 17.08.2015, 13:22 | |||
|
процесса wait-функцией (например, WaitForSingleObject) будет возвращать управление с соответствующим кодом. Либо можно проверять значение GetExitCodeProcess.
1
|
|||
|
|
||
| 17.08.2015, 13:42 | ||
|
1
|
||
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
|
| 20.08.2015, 09:51 [ТС] | |
|
Эти эвенты относятся к тем событиям которые можно посмотреть через "Просмотр событий"? Если так то какого они типа, если нет - можно ли их просматривать ? У меня подозрение что WaitForSingleObject не ждет или эвент сразу во взведенном состоянии.
0
|
|
|
Ушел с форума
|
|
| 20.08.2015, 10:00 | |
|
0
|
|
|
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
|
||||||
| 20.08.2015, 12:07 [ТС] | ||||||
|
У меня появляется ошибка доступа при выполнении приложения, если не ошибаюсь на строке создания Eventa, причем после того как несколько раз эта строка уже исполнялась по логике кода, на одном месте при копировании ярлыка.
0
|
||||||
| 20.08.2015, 12:07 | |
|
Помогаю со студенческими работами здесь
20
Закрытие процесса Закрытие процесса Word
Закрытие процесса Excel Программное закрытие процесса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|