![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
МАХИМ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Программа каждые 100 ms делает слепок запущенных процессов и совершает определенные действия. Работа идет с окнами процессов окна ищутся по имени процесса.
Работа программы расчитана на три процееса и соответственно на три окна, но даже при работе с одним процессом, причем не сразу, возникают следующие явления: вместо 2 клика, при навигации по папкам диалоговых окон принадлежащих программе, необходимо делать 5-10 кликов; контекстное меню не всегда пропадает...и т.п. странности в плоть до зависании программы при чем не полном, иногда просто нельзя закрыть окно программы иногда программа не может получить фокус(т.е. сама перескакивает на окно процесса с которым работает). Иногда виснет совсем. Но странности проявляются всегда. Помогите разобраться в чем дело.. Если информации мало спрашивайте еще отвечу. |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Когда Вы научитесь при таком обширном вопросе выкладывать куски кода? Пробовал Дебаггером пройтись? Что происходит? У меня такое подозрение (но, учти, что это подозрение, что в цикле создания слепков и прохода процессов у тебя нет Application.Process Messages) В этом случае есть несколько вариантов: - Использовать Application.PrcessMessages в цикле - Использовать Threads. (см. поиск) -------------------- Ll 2 |
|||
|
||||
МАХИМ |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Вставлял я их уже и не один раз вот:
Добавлено @ 14:46 Вставлял я их уже и не один раз вот:
Добавлено @ 14:52 Самое обидное что пронрамма функционирует но вот только виснет... ![]() Это сообщение отредактировал(а) Girder - 19.6.2006, 15:39 |
||||
|
|||||
МАХИМ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Если работать, с потоками то какую часть кода лучше отправить в отдельный поток. Ту которая отвечает за слепок процессов, ту которая отвечает за поиск окон процесса или ту которая отвечает за конкретное действие пользователя и/или самой программы с этим окном.
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
МАХИМ, можно попробовать замерить время выполнения отдельных функций и определить какая из них выполняется дольше всего.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
МАХИМ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
а как это осуществить
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Добавлено @ 15:48 Результат в мс -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Есть у меня подозрение, что снимок процесса делается с одним из приоритетов режима ядра, а поэтому 10 раз в секунду это слишком часто. У меня самого был такой цикл и сидльнейшее падение быстродействия. Постарайся делать снимки реже. А поиск в результатак слепка - это уже нормально
-------------------- Обижено школьников: 8 |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Если я правильно догадываюсь, то ты делаешь слепки процессов для того чтобы отследить запуск новых и уничтожение старых. Если это так, то попробуй ослеживание числа процессов вынести в отдельный поток. Да. И еще не понятно что делает строка -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Ну как же... Сравнивает строки "по содержанию" ![]() |
|||
|
||||
МАХИМ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
я только один раз создавал отдельный поток и это было 1,5 года назад не помню как совсем это делается по форуму читал нно всеже ни как голова не сооброзит можете подсказать конкретно на моем примере как создать и вызывать...буду очень признателен прогу ждут вчера на радостях написал что готова заказчику а проблема вон какая нарисовалась...
Добавлено @ 10:34 код естьвыше не забывайте. Если нужно еще что-то спрашивайте.. |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Это понятно. По содержанию чего? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
МАХИМ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.6.2006 Репутация: нет Всего: нет |
Имя файла процесса взятого из слепка с именем файла процесса с которым должна работать программа, чтобы код процедуры выполнялся только при наличии этого процесса в слепке.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |