Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.02 c
14-49694
НовичокНаФоруме
2003-12-26 10:35
2004.01.16
Win XP with SP1


3-49468
Kirill_S
2003-12-17 16:48
2004.01.16
Работа нескольких пользователей с данными


1-49641
AllDer
2004-01-04 01:14
2004.01.16
Пытаюсь разобратся со встроенным ассемом


1-49638
Brut
2004-01-04 14:54
2004.01.16
Как использовать типы и классы в различных модулях.


1-49586
IBSN
2004-01-04 18:14
2004.01.16
TRichEdit




   Наверх