После запуска программы, можно ли определить окончание ее запуска?







+7 +/-

К примеру, я запустил браузер. Возможно ли программными средствами отследить окончание ее загрузки и вывести сообщение об этом? Или пока загружаются программы(автозагрузка), такие, которые сидят в системном трее или просто скрыто запускаются и в обычном окне выводить сообщения об окончании загрузки каждой программы.

Профиль пользователя Pus Спросил: Pus   (рейтинг 2595) Категория: компьютеры и интернет

Ответов: 2

3 +/-
Лучший ответ

Имеется ввиду окончание загрузки программы или окончание работы программы?

Если брать язык С++ (компилятор GCC для Windows), то есть системный вызов waitpid(pid_t pid), который ожидает завершения процесса с идентификатором pid (pid может быть порожден, например, системным вызвовм fork(), после fork() обычно следует вызов exec(const char *path, const char *arg, ...)).

Аналогом функций fork() и exec() в Windows - CreateProcess.

Аналогов функции waitpid() в Windows является - WaitForSingleObject.

Однако, если требуется узнать, когда приложение именно окончило загрузку, то тут уже сложнее 😉

Например, можно контролировать появление окна приложения, например по заголовку (EnumChildWindows - получить список окон, GetWindowRect - зазмер окна, GetWindowText - заголовок окна).

Вообще, однозначного способа я точно сказать не могу, т. к. в основном работаю под Linux, но думаю, что копать нужно в сторону GetProcessInformation, а точнее, когда линкер (linker) закончит связывание исполняемого файла с динамическими библиотеками. Но, в данном случае, не учитывается собственная загрузка ресурсов приложением.

Есть еще один момент, некоторые приложения создают мьютекс в разделяемом сегменте памяти, что-бы предотвратить повторный запуск приложения, можно также отслеживать и его создание. Для получения информации о подобных вещах проще всего воспользоваться отладчиком windbg.

p.s. будут вопросы - обращайтесь, что нибудь придумаем 😉

Ответил на вопрос: Imine  
1 +/-

Да, то, что вы хотите сделать легко реализуется. Мне сложно посоветовать конкретные вещи, поскольку вы не потрудились указать языки программирования или опыт программирования.

Если в общих чертах, то есть стандартная утилита - диспетчер задач - она получает список всех текущих процессов. Вот и вам нужно аналогично получить список всех текущих процессов, определить из них те, которые вам нужны и следить за ними, до их завершения.

Ответил на вопрос: Preparator 

Похожие вопросы

Спросил
2 Отв.
Почему школьная программа так часто меняется?
Ответ: Потому что постоянно придумываются новые способы научить детей максимально эффективно. От этого и постоянная смена школьной программы. Ну и новым профессорам нужно как-то свои творения внедрять, а то ... Читать далее...
Автор вопроса: Karatas, в категории | |
Спросил Karatas
1 Отв.
Mediaget вирус или нет?
Ответ: Скорее они распространяют агрессивную рекламу. ... Читать далее...
Автор вопроса: Brushes, в категории | | | | |
Спросил Brushes
1 Отв.
Какой программой действительно можно собирать базы емейл адресов?
Ответ: Я всегда собираю емейл адреса с помощью программы StandartHarvester. Очень довольна их работой! ... Читать далее...
Автор вопроса: Athomas, в категории | | | |
Спросил Athomas
3 Отв.
Ирада Зейналова стала ведущей НТВ? Какую программу будет вести?
Ответ: Эта новость появилась 2 ноября: Ирада Зейналова покидает Первый канал и переходит работать на НТВ. На Первом канале Зейналова с 2003 года. Первым шагом в ее карьере стала работа в качестве корреспонд ... Читать далее...
Автор вопроса: Malcom, в категории | | |
Спросил Malcom
1 Отв.
Новый Яндекс.Браузер — плюсы и минусы, отзывы о Яндекс.Браузер?
Ответ: Из плюсов можно выделить скорость работы и поддержку многих плагинов, интеграция с сервисами самого поисковика. Лично я считаю, что яндекс. браузер мало чем отличается от того-же хрома или мозилы. Для ... Читать далее...
Автор вопроса: Elan, в категории | | | | |
Спросил Elan
2 Отв.
Где скачать программу для рута андроид с компьютера?
Ответ: Программу для рута можно скачать прямо в плэй маркете называется Рут все устройства. Она находит подходящую для твоего телефона рут программу(в моем случае ... Читать далее...
Автор вопроса: Rexen, в категории | |
Спросил Rexen
1 Отв.
Что за программа MasterCard Больше? Как стать участником программы?
Ответ: MasterCard більше - очень интересная программа для владельцев банковских карточек MasterCard любых украинских банков. Я случайно увидела рекламу этой ... Читать далее...
Автор вопроса: Sossick, в категории |
Спросил Sossick
4 Отв.
Какая программа «Путешествие в Рождество» 2016-2017 в Москве, где смотреть?
Ответ: Всенародно любимый фестиваль Путешествие в Рождество в 2016-2017 годах пройдет в Москве в период с 18 декабря 2016 года по 14 января 2017 года. В рамках ... Читать далее...
Автор вопроса: Fregozo, в категории | | | | |