Главная страница
    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.011 c
6-1139402416
-=S..S=-
2006-02-08 15:40
2006.07.09
TWebBrowser VS input type="file"


1-1148889628
Layner
2006-05-29 12:00
2006.07.09
Как принудительно "перерисовать" форму


2-1150452726
NSA
2006-06-16 14:12
2006.07.09
Как узнать колличество дней в месяце?


2-1151048589
zdm
2006-06-23 11:43
2006.07.09
Найти день рождения(MS Access)


3-1147342800
Igor666
2006-05-11 14:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский