Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
3-1146994013
illuha
2006-05-07 13:26
2006.07.09
Не сохраняются *.jpg в Access


1-1148843711
Glivera
2006-05-28 23:15
2006.07.09
Удаление пустых строчек из Excel я


2-1150676695
lamerazoid
2006-06-19 04:24
2006.07.09
Выполнение произвольного кода


2-1150811926
Тимофей Юрьевич
2006-06-20 17:58
2006.07.09
скан сети на 21 порт


2-1150898583
vacek
2006-06-21 18:03
2006.07.09
С помощью чего можно получить доступ к не списку компонента com