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

Вниз

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

 
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 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
4-49809
Tracer
2003-11-12 12:29
2004.01.16
Как прочитать информацию с чужй формы (Заголовок формы известен)


7-49774
John Kayfolom
2003-11-04 10:11
2004.01.16
Пример написания сервиса (TService)


3-49407
Mord_Sit
2003-12-19 11:10
2004.01.16
Partitioned table


1-49589
sVic
2004-01-05 14:05
2004.01.16
Не выгонять лист после печати


1-49483
Blacklord2003
2003-12-28 15:22
2004.01.16
Как сделать подсветку синтаксиса в TRichEdit