Как наити нужную программу???
От: Johnson  
Дата: 10.11.03 15:56
Оценка:
Помогите начинающему... Нужно чтобы моя программа работала только если запушена и в данный момент активна другая программ. Пытаюсь...
   AppWnd:= GetForegroundWindow();
   id:=FindWindow('OWL_Window','Имя программы');
   if id=AppWnd then
     begin
....
     end;

Почему то не выходит... хотя программа запущена и активна.
Re: Как наити нужную программу???
От: Аноним  
Дата: 10.11.03 15:59
Оценка:
Здравствуйте, Johnson, Вы писали:

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

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

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

Попробуй для начала

hwnd:= FindWindow(nil,'Заголовок программы');
if hwnd<>0 then Оно ...
Re[2]: Как наити нужную программу???
От: Johnson  
Дата: 10.11.03 16:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Johnson, Вы писали:


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

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

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

А>Попробуй для начала


А> hwnd:= FindWindow(nil,'Заголовок программы');

А> if hwnd<>0 then Оно ...

Попробовал при запущенном приложении работает, при выключенном нет...
Re[3]: Как наити нужную программу???
От: Аноним  
Дата: 10.11.03 16:09
Оценка: :)
А>>Попробуй для начала

А>> hwnd:= FindWindow(nil,'Заголовок программы');

А>> if hwnd<>0 then Оно ...

J>Попробовал при запущенном приложении работает, при выключенном нет...


Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?
Re[4]: Как наити нужную программу???
От: Johnson  
Дата: 10.11.03 16:11
Оценка:
Здравствуйте, Аноним, Вы писали:


А>>>Попробуй для начала


А>>> hwnd:= FindWindow(nil,'Заголовок программы');

А>>> if hwnd<>0 then Оно ...

J>>Попробовал при запущенном приложении работает, при выключенном нет...


А>Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?


К сожалению нет...
Re[5]: Как наити нужную программу???
От: Аноним  
Дата: 10.11.03 16:17
Оценка:
Здравствуйте, Johnson, Вы писали:

J>Здравствуйте, Аноним, Вы писали:



А>>>>Попробуй для начала


А>>>> hwnd:= FindWindow(nil,'Заголовок программы');

А>>>> if hwnd<>0 then Оно ...

J>>>Попробовал при запущенном приложении работает, при выключенном нет...


А>>Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?


J>К сожалению нет...


А что значить не работает при выключенном приложении ? Твоем ? или то чье окно ищется...?
Помоему в любом случае очевидно что и не должно, т.к. в первом — твой код проверки уже не исполняется , во втором — окна нету которое пытаешся найти и возвращается 0.

Если возвращается не 0 значит есть еще одно окно с таким же заголовком , проверь не называется твоя форма в среде разработки таким же именем
Re[6]: Как наити нужную программу???
От: Johnson  
Дата: 10.11.03 16:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Johnson, Вы писали:


J>>Здравствуйте, Аноним, Вы писали:



А>>>>>Попробуй для начала


А>>>>> hwnd:= FindWindow(nil,'Заголовок программы');

А>>>>> if hwnd<>0 then Оно ...

J>>>>Попробовал при запущенном приложении работает, при выключенном нет...


А>>>Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?


J>>К сожалению нет...


А>А что значить не работает при выключенном приложении ? Твоем ? или то чье окно ищется...?

А>Помоему в любом случае очевидно что и не должно, т.к. в первом — твой код проверки уже не исполняется , во втором — окна нету которое пытаешся найти и возвращается 0.

А>Если возвращается не 0 значит есть еще одно окно с таким же заголовком , проверь не называется твоя форма в среде разработки таким же именем


Моё приложение запущено постоянно. Пребуется чтобы оно совершало определённые действия если в данный момент активно другое, определённое приложение. При закрытом приложении понятно что будет возвращатся 0, но если оно свёрнуто в иконку то возвращатся 0 уже не будет. А моё приложение всё равно будет работать, даже если активно в данный момент совершенно другое приложение.
Re[7]: Как наити нужную программу???
От: Аноним  
Дата: 10.11.03 16:52
Оценка:
Здравствуйте, Johnson, Вы писали:

J>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Johnson, Вы писали:


J>>>Здравствуйте, Аноним, Вы писали:



А>>>>>>Попробуй для начала


А>>>>>> hwnd:= FindWindow(nil,'Заголовок программы');

А>>>>>> if hwnd<>0 then Оно ...

J>>>>>Попробовал при запущенном приложении работает, при выключенном нет...


А>>>>Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?


J>>>К сожалению нет...


А>>А что значить не работает при выключенном приложении ? Твоем ? или то чье окно ищется...?

А>>Помоему в любом случае очевидно что и не должно, т.к. в первом — твой код проверки уже не исполняется , во втором — окна нету которое пытаешся найти и возвращается 0.

А>>Если возвращается не 0 значит есть еще одно окно с таким же заголовком , проверь не называется твоя форма в среде разработки таким же именем


J>Моё приложение запущено постоянно. Пребуется чтобы оно совершало определённые действия если в данный момент активно другое, определённое приложение. При закрытом приложении понятно что будет возвращатся 0, но если оно свёрнуто в иконку то возвращатся 0 уже не будет. А моё приложение всё равно будет работать, даже если активно в данный момент совершенно другое приложение.


Свернутое окно или не свернутое — GetWindowXXXX ...(GetWindowLong в частности) там можно узнать состояние и стиль окна. А то что ты назвал "выключенное" состояние называется минимизированным, от этого уменьшается только приоритет потока в отличии от окна активного и стиль окна меняется .
Re[8]: Как наити нужную программу???
От: Johnson  
Дата: 10.11.03 18:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Johnson, Вы писали:


J>>Здравствуйте, Аноним, Вы писали:


А>>>Здравствуйте, Johnson, Вы писали:


J>>>>Здравствуйте, Аноним, Вы писали:



А>>>>>>>Попробуй для начала


А>>>>>>> hwnd:= FindWindow(nil,'Заголовок программы');

А>>>>>>> if hwnd<>0 then Оно ...

J>>>>>>Попробовал при запущенном приложении работает, при выключенном нет...


А>>>>>Помню кто-то пытался включить программно компьютер, это случайно не из той же серии ?


J>>>>К сожалению нет...


А>>>А что значить не работает при выключенном приложении ? Твоем ? или то чье окно ищется...?

А>>>Помоему в любом случае очевидно что и не должно, т.к. в первом — твой код проверки уже не исполняется , во втором — окна нету которое пытаешся найти и возвращается 0.

А>>>Если возвращается не 0 значит есть еще одно окно с таким же заголовком , проверь не называется твоя форма в среде разработки таким же именем


J>>Моё приложение запущено постоянно. Пребуется чтобы оно совершало определённые действия если в данный момент активно другое, определённое приложение. При закрытом приложении понятно что будет возвращатся 0, но если оно свёрнуто в иконку то возвращатся 0 уже не будет. А моё приложение всё равно будет работать, даже если активно в данный момент совершенно другое приложение.


А>Свернутое окно или не свернутое — GetWindowXXXX ...(GetWindowLong в частности) там можно узнать состояние и стиль окна. А то что ты назвал "выключенное" состояние называется минимизированным, от этого уменьшается только приоритет потока в отличии от окна активного и стиль окна меняется .


Тогда я надеюсь последний вопрос где про эту функцию почитать можно или может скажеш достойнай FAQ по Win API...
Re[9]: Как наити нужную программу???
От: Аноним  
Дата: 11.11.03 02:05
Оценка:
J>Тогда я надеюсь последний вопрос где про эту функцию почитать можно или может скажеш достойнай FAQ по Win API...
msdn.microsoft.com->Library.

Но она помоему и в дельфевском хелпе есть, найди win32.hlp и там набери GetWindowLong
Re[10]: Как наити нужную программу???
От: Johnson  
Дата: 11.11.03 13:58
Оценка:
Здравствуйте, Аноним, Вы писали:


J>>Тогда я надеюсь последний вопрос где про эту функцию почитать можно или может скажеш достойнай FAQ по Win API...

А>msdn.microsoft.com->Library.

А>Но она помоему и в дельфевском хелпе есть, найди win32.hlp и там набери GetWindowLong


Пытался разобраться, но что не получилось. Можно кусочек кода если не сложно...
Re: Как наити нужную программу???
От: Johnson  
Дата: 11.11.03 14:59
Оценка:
Создаётся такое впечатление что
AppWnd:= GetForegroundWindow
id:=FindWindow('OWL_Window',Заголовок');
if (id=AppWnd)then

id
и
AppWnd
всегда неравны даже если одно приложение работает, а в этой последовательности случайно нет окон которые всегда считаются активными и находятся в фокусе???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.