![]() |
|
![]() ![]() ![]() |
|
santey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 31.12.2005 Репутация: -1 Всего: -1 |
Здравствуйте.
Подскажите кто сможет, ситуация следующая. Мне необходимо, чтобы на одном компьютере запускалось только одно приложение. Я при помощи мьютексов устанавливаю, работает ли приложение уже на компьютере, и вот если работает в свернутом виде в панеле задач, то после запуска этого приложения из панели задач возникают проблемы с его минимизацией. Например. У меня имеется 1 запущенное приложение, я его минимизирую в полосу задач нажатием кнопки на Esc, после чего приложение минимизируется функцией Perform(WM_SYSCOMMAND,SC_MINIMIZE,0); пробовал и вот так Application->Minimize(); пробовал и через дескриптор. Далее запускаю 2 такое же приложение, причем мне не нужно, что бы оно запускалось, а нужно, чтобы 1 приложение восстановилось из полосы задач, а второе закрылось, я использую из второго приложения следующие строки кода. HANDLE h=OpenMutex(SYNCHRONIZE,true,"MyForm"); //открываю мьютекс if(h) //если приложение уже работает { HANDLE hwnd=FindWindow("TFormMain","Приложение"); //нахожу дескриптор 1 приложения ShowWindow(hwnd,SW_SHOWNORMAL); //здесь пробовал также SW_RESTORE, показываю 1 приложение SetForegroundWindow(hwnd); //если было запущены другие программы, то 1 приложение показываю поверх всего Application->Terminate(); //закрываю 2 приложение } else //если приложение не работает, то создаю мьютекс CreateMutex(NULL,true,"MyForm"); То есть второе приложение закрывается, так как работает первое и первое восстанавливает свои размеры, но если попытаться первое приложение минимизировать, то ничего не получается, окно не хочет сворачиваться в панель задач. Подскажите в чем может быть дело? |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Вместо вот этогопопробуй
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А проверка эта точно один раз при запуске срабатывает? Вы случайно не в обработчик события ее поместили?
|
|||
|
||||
santey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 31.12.2005 Репутация: -1 Всего: -1 |
||||
|
||||
Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Единственный форум, где так грамотно все переделали -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |