![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
Application.Active работает прекрасно, но если приложение подвисло, т.е. какие-то длительные вычисления, то значение этого свойства не обновляется. Есть ли другой способ узнать активно приложение или нет?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
GetForegroundWindow, GetActiveWindow?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
var-alex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.10.2003 Где: Коломна, MCK Репутация: 1 Всего: 1 |
Вынести вичисления в отдельный поток?? Вызывать application.processmessages в этих вычислениях?? И всё будет обновляться?
|
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
млин, я о чем спрашивал-то? Есть ли другой способ узнать активно приложение или нет? <Spawn>, сенкс, разобрался. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
У меня эта задача стояла особенно остро примерно 4 года назад - представьте примерно 100 програм, работающих на 100 компьютерах. Программы навороченные - хрен-знает-сколько третьесторонних продуктов, коннект с несколькими сетями, серверами и т.п. В общем зависание очень даже возможно, даже не в моём коде, а в коде например репортинговой DLL, или чужого ActiveX, который получает данные с сети и т.п. Причём в определённом проценте случаев вешалась не только программа, но и весь компьютер... Я решил эту проблему так - каждая программа создавала на сетке в зашаренной папке файл нулевой длинны - этот файл я перезаписывал во всех циклах, до и после всех долгоиграющих процессов, для своей программы у меня были точные сведения что реже чем 1 раз в 5 минут такой файл перезаписываться не может - теперь отдельная программы проверяла возраст этого файла - если он оказывался больше 5 минут, то программа или компьютер повис и посылала email в группу сервиса, и пыталась перезагрузить компьютер. Эта система работает очень хорошо до сих пор.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
а у меня помимо основного потока есть еще один, он занимается тем что следит за состоянием программы (основного потока), повисла\не повисла, т.д., плюс иногда выводит статистику. Когда юзер работает в другой программе и ему на эту статистику положить не надо ее и показывать. Собственно из-за этого такая проблема и возникла.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
iZZi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2003 Репутация: нет Всего: нет |
А как ты реализовал эти потоки? я в этом пока еще не разбирался, но интересно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |