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

Вниз

Как наити нужную программу???   Найти похожие ветки 

 
Johnson   (2003-11-10 18:45) [0]

Помогите начинающему... Нужно чтобы моя программа работала только если запушена и в данный момент активна другая программ. Пытаюсь...

AppWnd:= GetForegroundWindow();
id:=FindWindow("OWL_Window","Имя программы");
if id=AppWnd then
begin
....
end;

Почему то не выходит... хотя программа запущена и активна.


 
DVM   (2003-11-10 19:03) [1]

а зачем тут GetForegroundWindow()?
не проще ли так:


if FindWindow("OWL_Window","Имя программы")<>0 then
begin
....
end;


 
Johnson   (2003-11-10 19:07) [2]

Ну так она будет работать в любом случае даже если программа свёрнута. А надо чтоб работала только когда прилажение активно.


 
DVM   (2003-11-10 19:12) [3]


> любом случае даже если программа свёрнута

Проверка на "свернутость" (not IsIconic(hWnd)).

GetForegroundWindow не всегда возвращает то, что нужно, как и SetForeground* не всегда делает окно активным и не всегода выдвигает его на передний план.


 
DVM   (2003-11-10 19:13) [4]

И еще проверь, а FindWindow вообще находит что?


 
Johnson   (2003-11-10 19:25) [5]

FindWindow работает нормально а проверка
If (id<>0)and(not IsIconic(id)) Then
всё равно не дает требуемого результата.


 
Johnson   (2003-11-10 21:06) [6]

Может кто подскажет достойный сайт по WIN API


 
F1   (2003-11-11 10:45) [7]

А что если попробовать GetFocus, а потом дойти до верхнего Parent-a?
wnd:=GetFocus;
while GetParent(wnd)<>0 do wnd:=GetParent(wnd);
Может так прокатит...


 
Игорь Шевченко   (2003-11-11 10:50) [8]

Johnson (10.11.03 21:06)
> Может кто подскажет достойный сайт по WIN API


www.delphimaster.ru/cgi-bin/forum.pl?n=5


 
Johnson   (2003-11-11 16:55) [9]

Говорят ещё как то можно через GetWindowLong но уменя чего то не получается, в и-нете смотрел там уж больно синтаксис замудрённый. Подскажите если можете.


 
Johnson™   (2003-11-11 17:59) [10]

Создаётся такое впечатление что
[code]
AppWnd:= GetForegroundWindow
id:=FindWindow("OWL_Window",Заголовок");
if (id=AppWnd)then
[/code]
[code]id[/code] и [code]AppWnd[/code] всегда неравны даже если одно приложение работает, а в этой последовательности случайно нет окон которые всегда считаются активными и находятся в фокусе???



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

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

Наверх





Память: 0.46 MB
Время: 0.01 c
7-49794
Геннадий
2003-11-03 15:50
2004.01.16
Детектирование режима работы монитора: оконный/полноэкранный


7-49795
V-Isa
2003-11-04 13:05
2004.01.16
Звуковая карта


1-49624
Женя
2004-01-04 12:01
2004.01.16
Копирование файлов в Delphi


11-49474
Denis Myasnichenko
2003-04-30 10:49
2004.01.16
KOL && инициализация


4-49806
Johnson
2003-11-10 18:45
2004.01.16
Как наити нужную программу???





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