Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2015, 17:33
SKIPtr SKIPtr вне форума
Начинающий
 
Регистрация: 15.03.2015
Сообщения: 108
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию перечисление окон

драсте подсажите как можно перечислить окна
через EnumWindows(EnumFunc: TFarProc, lParam: Longint): Bool;
но нужно чтоб функция EnumFunc: каждый раз вызывалачь вручную
Ответить с цитированием
  #2  
Старый 18.12.2015, 18:18
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

по какому событию? и что предполагается передавать как аргументы функции?
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #3  
Старый 18.12.2015, 18:19
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Цитата:
нужно чтоб функция EnumFunc: каждый раз вызывалачь вручную
А вот с этого места - поподробнее.
Ответить с цитированием
  #4  
Старый 18.12.2015, 18:24
SKIPtr SKIPtr вне форума
Начинающий
 
Регистрация: 15.03.2015
Сообщения: 108
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от cotseec
по какому событию? и что предполагается передавать как аргументы функции?
событие OmTimer
с каждым входом в таймер он должен находить новое окно
Ответить с цитированием
  #5  
Старый 18.12.2015, 18:30
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

можно действовать по следующему алгоритму:
1 запустили перечисление окон (EnumWindows), составили список окон
2 в таймере запускаем опять перечисление окон и сверяемся со списком, если в списке нет окна, значит оно "новое"
3 добавляем "новое" окно в список

З.Ы. стоит посмотреть в сторону хука на создание окна
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #6  
Старый 18.12.2015, 18:53
SKIPtr SKIPtr вне форума
Начинающий
 
Регистрация: 15.03.2015
Сообщения: 108
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от cotseec
можно действовать по следующему алгоритму:
1 запустили перечисление окон (EnumWindows), составили список окон
2 в таймере запускаем опять перечисление окон и сверяемся со списком,
EnumWindows выполняет все сразу
мне хочеться шоб он в таймере долго не сидел
пусть лучше растянеться это действие



Цитата:
Сообщение от cotseec

З.Ы. стоит посмотреть в сторону хука на создание окна
ине нет необходимости шоб он быстро реагировал
если он после не большой задержки выполнит это даже лучше
Ответить с цитированием
  #7  
Старый 18.12.2015, 19:09
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

чтобы понять, что появилось что-то новое нужно либо периодически сверяться с ранее составленным списком (предложеный алгоритм) либо следить за жизнью окон (хук)

EnumWindows не "растянуть"
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #8  
Старый 18.12.2015, 19:37
SKIPtr SKIPtr вне форума
Начинающий
 
Регистрация: 15.03.2015
Сообщения: 108
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

конкретно мне надо узнать развернули окно какого нибудь браузера на весь
экран если разернули то выполнить определенын действия
в програме будет храниться список класов браузера
Ответить с цитированием
  #9  
Старый 20.12.2015, 10:20
SKIPtr SKIPtr вне форума
Начинающий
 
Регистрация: 15.03.2015
Сообщения: 108
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

во нашел
я это сделаю через GetNextWindow
тут каждый вызов таймера найдет только одно окно
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter