ShowWindow
Никто не знает почему после использования функции ShowWindow() окно невозможно свернуть?
:???:
А ну покажи-ка код... Оччень интересно, как тебе это удалось :D
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
if(FindWindow("TForma","Forma")!=NULL){
ShowMessage("Программа уже запущена!");
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Application->Terminate();
}
В общем тут проверяется, запущена ли уже программа. Если она запущена выдаётся об этом сообщение, запущенное приложение разворачивается, а новое не загружается. Всё работает, только после того как программа разворачивается, свернуть её уже не получается.
А пробывал черес мьютекс проверку на запущенну программу делаь?
Да какая разница? Меня интересует почему окно потом свернуть нельзя?:)
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Добавь
SetForegroundWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
После строчки
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Добавь
SetForegroundWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
SetFooregraundWindow(FindWindow("TForma","Forma")) всего навсего делает это окно активным. А свернуть его всё равно нельзя. Только программно.
SetFooregraundWindow(FindWindow("TForma","Forma")) всего навсего делает это окно активным. А свернуть его всё равно нельзя. Только программно.
Я че то вообще ничего не понял:
if(FindWindow("TForma","Forma")!=NULL){
ShowMessage("Программа уже запущена!");
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Application->Terminate();
}
Форма изночально скрыта чтоля..?
И темболее Application->Terminate();
вообще все закроет...
Joker, проблема такая - если запущено оконное приложение, с проверкой приведенной выше (проверка стоит ДО инициализации приложения), то если запускается это же приложение повторно оно находит хендл окна по имени и посылалает команду развернуться ему, а само завершается. Так вот что интересно - после того, как окно (прежнее) развернулось - кнопка "минимизировать" перестает реагировать на сообщения! Осталтные кнопки максимизировать" и "закрыть" работают как положено. Вот такая вот ситуёвина интересная
А куда ты этот код вставляешь.. ,а то че то у меня везде фиксирует что окно уже есть и закрывает его...
И еще зачем делать show окну оно изначало скрыто чтоля..??
А куда ты этот код вставляешь.. ,а то че то у меня везде фиксирует что окно уже есть и закрывает его...
И еще зачем делать show окну оно изначало скрыто чтоля..??
:D :D у тебя фиксирует окно формы в среде разработки.
При старте - измени имя окна и его ищи.
Вставь код в WinMain, перед Application->Init...
Посмотри вот этот примерчик
У меня все работает как надо..
Система WinXp
Builder C++6