Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Вниз

Вывод приложения на передний план...   Найти похожие ветки 

 
МитяЙ2   (2003-03-23 10:41) [0]

У меня в программе есть проверка на повторный запуск.
И при этом повторном запуске я хочу вывести на передний
план уже ранее запущенную программу, и не запускать
второй экземпляр приложения.

Мастера подскажите, почему следующий код (в MyProg.dpr) не работает:

my_hwnd:THandle;


my_hwnd:=FindWindow("TfmMyProg", nil);
if my_hwnd<>0 then // сюда мы попадаем, проверял в отладчике (т.е. форму находит этот код)
Begin
ShowWindow(FindWindow("TfmMyProg", nil),SW_SHOW); // это не дает нужного результата!
SetForegroundWindow(my_hwnd); // это работает - заметно, когда окно поверх остальных.
End;



P.S. Прочитал много справок по повторному запуску приложений, но все, что там есть не помоголо!


Заранее, ОЧЕНЬ благодарен!

МитяЙ.


 
Song   (2003-03-23 11:08) [1]

Вот этой строчкой
ShowWindow(FindWindow("TfmMyProg", nil),SW_SHOW);

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


 
Митяй2   (2003-03-23 11:37) [2]

1. Ладно ShowWindow убираю, т.к. приложение - restore
2. SetForeGroundWindow не работает, хоть убей!

И в XP и в Windows 98SE


 
Митяй2   (2003-03-23 11:41) [3]

Это мистика какая-то!
Может из-за каких-нибудь свойств ФОРМЫ, имеющей тип "TfmMyProg"
или ????????


 
Anatoly Podgoretsky   (2003-03-23 12:27) [4]

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


 
Митяй2   (2003-03-23 12:38) [5]

Анатолий, в системе что-ли?

Если да, то где?

Если прикол - то, где взять ВЛОМЩИК от выпрыгунчиков? :-))))



 
Song   (2003-03-23 13:47) [6]

2Митяй2 © (23.03.03 11:37)
Если приложение - restore, тогда убирать ничего не надо, просто используйте константу SW_RESTORE


 
МитяЙ2   (2003-03-23 14:37) [7]

Оказывается у меня выше FindWindow("TfmMyProg", nil) стояло (прорабатывало любом случае):

Application.Initialize;
Application.Title := "caption";
Application.CreateForm(TfmMyProg, fmMyProg);

Т.е. в системе было несколько созданных окон типа TfmMyProg.


 
Митяй2   (2003-03-23 14:41) [8]

Извиняйте, кого зря побеспокоил.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-70321
Filat
2003-05-07 20:27
2003.05.22
RxDBLookupCombo в режиме ReadOnly, почему?


1-70343
Officeman
2003-05-09 12:58
2003.05.22
какой код


8-70396
Сутковой Вадим
2002-11-27 21:15
2003.05.22
Flash не растягивается!


3-70113
lejik
2003-04-30 09:07
2003.05.22
Автоинкремент в SQLServer


1-70298
R
2003-05-13 03:13
2003.05.22
Быстрый перевод из String в Extended





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский