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

Отловить момент закрытия программы

04.02.2012, 02:04. Показов 2362. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
.exe файл запускается другим .exe при этом программа которая запускает, сразу после запуска
прячется (Form1->Visible=false но продолжает работать. Вопрос - каким образом
из запускающей программы отследить момент завершения запущенной программы чтобы сделать ее
окно видимым
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2012, 02:04
Ответы с готовыми решениями:

Как получить при запуске программы системную дату и время на момент запуска программы?
Добрый день. Как получить при запуске программы системную дату и время на момент запуска программы и закинуть их в Label?

Ожидание закрытия программы
Реализовал ожидание закрытия программы таким образом: void __fastcall TfMain::FormCreate(TObject *Sender) { hMutex = CreateMutex...

Отмена закрытия программы
При нажатии на кнопку крестик тоесть закрываем как сделать чтобы она не закрывалась. ? Добавлено через 12 секунд Подскажите...

5
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
04.02.2012, 02:07
методом FindWindow() находим программу
методом ShowWindow() устанавливаем нужное значение видимости

Допустим форма которую нужно показать называется Form1:

C++
1
2
3
4
HWND h = FindWindow(NULL, "Form1");
if (h) { // Если окно найдено
    ShowWindow(h, SW_SHOW);
}
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.02.2012, 02:15
ловить
C++
1
WM_CLOSЕ
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.02.2012, 03:00
Цитата Сообщение от Valery_ Посмотреть сообщение
как отследить момент завершения запущенной программы
Ну, буквально "отслеживать" придется по таймеру. Или я ошибаюсь? Понятнее было бы, если б запущенная программа (Form2) сама перед закрытием сообщала запустившей её программе об этом печальном событии. Это же возможно?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.02.2012, 03:15
есть две большие разницы:
1. две формы одного приложения
2. два разных приложения
Если это две формы одного приложения - отслеживаем из Fom1:
C++
1
if (Form2->OnCloseQuery) {...}
Если два разных приложения - FindWindow и WM_Close.
Определитесь, что у вас.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.02.2012, 03:25
Вот этот простенький вариант у меня работает (хоть может быть он и неверно создан теоретически).
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
//---------------------Unit1.cpp---------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
      Form1->Visible = false;
      Form2->Show() ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDblClick(TObject *Sender)
{
      Form1->Visible = true;
}
//-----------------------Unit2.cpp-------------------------------------------
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{                              // timer set on 7 sec
     Form1->FormDblClick(0);
     Close();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2012, 03:25
Помогаю со студенческими работами здесь

Подтверждение закрытия программы
здраствуйте как сделать чтобы при закрытии программы появлялось окно выбора да/нет? я делаю такif (MessageBox(0,&quot;вы действительно...

Запрет закрытия программы
Как запретить закрывать программу, например как антивирусы не закрываются даже в Деспетчере Задач?

Отловить событие завершения программы
Доброго времени суток. Проблема такая. Как отловить событие закрытие программы из диспечера задач? Пробывал в событиях onDestroy...

Код закрытия посторонней программы
Нужен код на закрытие сторонней программы или всех программ. Например из программы созданной на &quot;билдере&quot; нужно мне закрыть...

Удалить файл после закрытия программы
Здравствуйте! Ребята подскажите по такому вопросу! Создаю файл из объекта класса TStingList методом SaveToFile с расширеним csv,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru