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

Вниз

Как сделать активным окно некоего приложения   Найти похожие ветки 

 
Dr. Genius   (2006-06-12 15:44) [0]

Как сделать активным окно некоего приложения (даже если оно находится в свернутом виде), зная его Caption?


 
Rial ©   (2006-06-12 17:51) [1]

Wnd:=FindWindow(..);

 ShowWindow (Wnd,SW_SHOW);
 SetForegroundWindow(Wnd);


 
Dr. Genius   (2006-06-15 10:10) [2]

var
 hWnd: THandle;
begin
 if (OpenMutex (MUTEX_ALL_ACCESS, False, "MyMutex") <> 0) then
   begin
     hWnd := FindWindow (nil, "Form1");
     ShowWindow (hWnd, SW_SHOWNORMAL);
     SetForegroundWindow (hWnd);
     Exit;
   end;
 CreateMutex (nil, False, "MyMutex");


Ставлю этот код в dpr-файле приложения (перед Application.Initialize). Программа, с помощью мутекса, при запуске определяет, не было ли запущено приложение ранее, и если находит уже запущенную копию, то активизирует ее.
Но если активизируется уже ранее запущенное и при этом в данный момент свернутое окно, то в нем перестает работать системная кнопка «Свернуть». Можно ли это как-то исправить?

И еще. Что надо писать в качестве первого параметра функции FindWindow (там, где в коде у меня написано nil)? Я пробовал строку ‘TApplication’, но тогда функция перестает работать.


 
Dr. Genius   (2006-06-18 22:44) [3]

Help me...


 
Rial ©   (2006-06-19 00:55) [4]

1-й параметр - имя класса окна.
Скорее всего, у тебя это "TForm1".

Причин первой проблемы не знаю, глюков и ShowWindow  никогда не замечал.
Что значит перестает работать ?
Исчезает, не отвечает, или что еще ?


 
Dr. Genius   (2006-06-19 10:39) [5]

функция никак себя не проявляет, если в качестве класса я пишу "TApplication".


 
Rial ©   (2006-06-19 11:00) [6]


> Dr. Genius   (19.06.06 10:39) [5]
>
> функция никак себя не проявляет, если в качестве класса
> я пишу "TApplication".


А как она должна по-твоему себя проявлять ?
В качестве класса все - таки советую писать класс существующего окна.
Между прочим, есть там написать TStringList или TRegistry,
то функция тоже себя никак не проявляет.
TApplication - это не совсем окно,
хотя и создает одно таковое при использовании.

Если у тебя Form1:TForm1, то писать надо
FindWindow("TForm1","Form");

А раз уж все равно окно ищешь, то можно было, ИМХО, и без мьютекса обойтись.



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

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

Наверх





Память: 0.46 MB
Время: 0.008 c
2-1150900068
fast2
2006-06-21 18:27
2006.07.09
Подскажите, как реализовать такое.


15-1149942229
Victor_Mw
2006-06-10 16:23
2006.07.09
Время работы проги в Delphi - Console Application??


15-1149778134
oldman
2006-06-08 18:48
2006.07.09
Люди добрые! Сами мы не местные, моможите, кто чем может...


2-1150779595
МГость
2006-06-20 08:59
2006.07.09
ДБГрид


15-1149761362
Layner
2006-06-08 14:09
2006.07.09
Хочу написать "Электронный термометр", как лучше сделать





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский