|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.08.2017, 06:26 | #1 |
Регистрация: 02.08.2017
Сообщений: 5
|
Многопоточное приложение
Доброго! Вот и моя очередь пришла просить помощи, не хватает моих знаний.
Есть программа для работы с определенными окнами, при запуске смотрит все запущенные окна и отсеевает по классу окна и добавляет их в ComboBox. Код:
Код:
Код:
|
02.08.2017, 07:21 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Делаете наследника от TThread с приватным свойством WindowID, которое передаёте в поток при инициализации экземпляра класса (переопределив метод Create):
Код:
Главное - не забыть про Synchronize.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
02.08.2017, 10:52 | #3 |
Регистрация: 02.08.2017
Сообщений: 5
|
Спасибо! Я уже почти у цели)
И еще такой вот вопрос: Как в Execute потока указать именно на нужное окно? Получается, что чекаю 2 окна в CheckListBox, запускаются 2 потока, но оба в одном окне, которое последнее в CheckListBox. |
02.08.2017, 13:12 | #4 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Можно просто пробегать по всем открытым на экране окнам в поисках нужного хендла. Того самого, который передаёте в поток при создании оного. Нашёл - обработал.
Что это значит - я не очень понял. Я так понимаю, 2 потока обрабатывают только последнее окно из списка?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Вадим Мошев; 03.08.2017 в 00:12. |
02.08.2017, 14:56 | #5 |
Регистрация: 02.08.2017
Сообщений: 5
|
Код:
handle 1 handle 2 handle 3 А вот потоки запускаются только с последним хендлом, то есть с 3. И получается запускается 3 потока и все 3 обращаются к 3му окну. Вот такая беда |
02.08.2017, 15:08 | #6 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Покажите код Execute потока.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
02.08.2017, 16:29 | #7 |
Регистрация: 02.08.2017
Сообщений: 5
|
Код:
Код:
[Name3] Инфо: 10 // Name всегда последнего окна [Name3] Инфо: 10 // Вся информация взята из 3 окна. [Name3] Инфо: 10 // [Name3] Хендл в потоке: 3147182 // [Name3] Хендл в потоке: 525912 // А вот хендлы какие надо. [Name3] Хендл в потоке: 6620686 // |
02.08.2017, 19:27 | #8 | |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Цитата:
тебе в первом же посте показали один из способов передать параметры в поток
Не стесняемся, плюсуем!
|
|
02.08.2017, 19:36 | #9 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
02.08.2017, 22:52 | #10 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Многопоточное приложение | Usov | Работа с сетью в Delphi | 5 | 10.02.2014 17:32 |
многопоточное приложение | Vistar | Общие вопросы .NET | 1 | 26.08.2011 16:25 |
многопоточное приложение | favorite | Общие вопросы Delphi | 0 | 26.05.2011 19:47 |
Многопоточное приложение | MaXoN66613 | Помощь студентам | 0 | 07.06.2010 12:36 |
Многопоточное приложение на Indy | Core2Duo | Работа с сетью в Delphi | 15 | 08.04.2009 16:45 |