Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

отмена выключения компьютера [Win2k]


Страницы:   1 2

вразлет ©   (2004-08-23 09:23:00) 

Доброго времени суток!

Очень рад был бы услышать советы и предложения по решению следующей проблемы:

Есть источник бесперебойного питания. При прекращении питания и разряде аккумулятора ИБП его софт выключает компьютер.
Требуется отловить и запретить выключение компа данной софтинкой.


GuAV   (2004-08-25 16:23:00) [1]

Залезь в таблицу импорта этой проги, поищи ExitWindowsEx и другие вырубающие ф-ции и подмени их на свои. В рантайме делается. Поищи, я спрашивал что-то типа "подмена WinAPI", digitman код привёл. Торопись, пока АП руки не оторвал.


GuAV   (2004-08-25 16:22:00) [2]

Залезь в таблицу импорта этой проги, поищи ExitWindowsEx и другие вырубающие ф-ции и подмени их на свои. В рантайме делается. Поищи, я спрашивал что-то типа "подмена WinAPI", digitman код привёл. Торопись, пока АП руки не оторвал.


DC-AC   (2004-08-25 13:50:00) [3]

АPС по запросу с компа может выдавать байт статуса и сам автоматически посылает байт, соответствующий переходу в другое состояние (On Battery, On Line, Low Battery и т.д.). Встроить в свою программу возможность контроля UPS APC это не так уж и сложно, перехватить сообщения PowerChute и пытаться влезть туда, куда не просят - уже сложнее.


bjohny   (2004-08-25 12:48:00) [4]

Снести софт UPS. Написать свою прогу.
Например можно перехватить сообщение посылаемое UPS(APC 700 посыдает сообщения) и выполнить необходимые действия.


Anatoly Podgoretsky   (2004-08-25 12:33:00) [5]

вразлет ©   (25.08.04 12:23) [23]
А тебя где искать в туалете?
Вытащи кабель управления и не мучайся.


КаПиБаРа   (2004-08-25 12:29:00) [6]


> У APC в некоторых версиях есть некий скриптовый фалй выключения
> компа, ты его использовал?

Нет. Там все задавалось в настройках программы (чекбоксами и едитами).


вразлет   (2004-08-25 12:23:00) [7]

Anatoly Podgoretsky ©

Если к примеру по умолчанию в опциях стои таймаут на отключение послн прекращения подачи питания 5 минут, а я поставлю 4 минуты, еще минуту поработаю и сам выключу комп, то где разница? Что тут, что тут -5 минут


вразлет   (2004-08-25 12:17:00) [8]

При отключении питания через T1 сервисная программа (как я подозреваю при получении сигнала от UPS) стандартным способом завершает windows. У приложений имеется возможность сохранить данные. Причем приложение может послать windows и отменить завершение

InitiateSystemShutdown?

У APC в некоторых версиях есть некий скриптовый фалй выключения компа, ты его использовал?


Anatoly Podgoretsky   (2004-08-25 12:15:00) [9]

вразлет ©   (25.08.04 12:07) [20]
Правильно, а ты собираешься заблокировать нормальное выключение. С чем трудно согласиться нормальному человеку.


вразлет   (2004-08-25 12:07:00) [10]

[18] Anatoly Podgoretsky ©   (25.08.04 11:49)
Последствия запрета просто катастрофические, вместо нормального выключения будет аварийное по разряду аккумуляторов, с потерей всех несохраненых данных, с весьма вероятной порчей баз данных и возможным разрушением файловой системы.


ИБП попытается выключит комп заблаговременно, еще до разряда батарей.

А если ты не умееешь нормально писать программы, то есть очень много других видов деятельности.

Очень замечательно, может продолжим обсуждение меня и моей квалификации в ветке "Почему АП отказался от голубого значка?".


КаПиБаРа   (2004-08-25 11:54:00) [11]


> А как называлась родная программа?

Не помню давно дело было. Шла на диске с UPS. Если сильно надо могу отписать на старую работу там народ посмотрит может даже по почте пришлет.


Anatoly Podgoretsky   (2004-08-25 11:49:00) [12]

Последствия запрета просто катастрофические, вместо нормального выключения будет аварийное по разряду аккумуляторов, с потерей всех несохраненых данных, с весьма вероятной порчей баз данных и возможным разрушением файловой системы.
А если ты не умееешь нормально писать программы, то есть очень много других видов деятельности.


вразлет   (2004-08-25 11:48:00) [13]

КаПиБаРа ©

А как называлась родная программа?


КаПиБаРа   (2004-08-25 11:42:00) [14]

В APC насколько я помню схема такая.
Задается время работы на UPS после отключения питания T1. И время на завершения работы компа T2.
При отключении питания через T1 сервисная программа (как я подозреваю при получении сигнала от UPS) стандартным способом завершает windows. У приложений имеется возможность сохранить данные. Причем приложение может послать windows и отменить завершение.
По истечении времени T2 USP отключает питание компа.Мы задавали T2 - 3 минуты. На сохраниение данных у приложения и завершение windows уходило около 2 мин. Таким образом запас был около минуты.


вразлет   (2004-08-25 11:14:00) [15]

[10] DesWind   (24.08.04 12:45)

Он отрубает даже проги с несохраненными данными


вразлет   (2004-08-25 11:13:00) [16]

[7] КаПиБаРа ©   (24.08.04 11:06)
Надо нормальный UPS покупать. У нас был APC у него отдельно устанавливалось время завершения работы windows и время отключения UPS.


Как я узнаю, что питание отключено и что через определенное время ИБП будет выключать комп?


вразлет   (2004-08-25 11:11:00) [17]

[8] Anatoly Podgoretsky ©   (24.08.04 12:01)

Тю. Фраза "отрывать руки" дискуссией и не пахнет. Это хамство и балаган и ты сам это знаешь.
Запрещать что либо я никому ничего не собирался, а лишь попросил, поэтому с напоминанием, что немодераторы здесь никто ты явно поторопился.
Если сильно хочется поувольнять -открывай свою фирму, нанимай кого хочешь и увольняй кого хочешь, а твое мнение по поводу моей персоны меня мало интересует.

А насчет рук еще раз пожтвержу, отрывать и по самую шею

А ты приезжай. Оторви.


Mim1   (2004-08-24 15:01:00) [18]


> [8] Anatoly Podgoretsky ©   (24.08.04 12:01)


Скорее всего у них ИБП фирмы "Супер-Труппер", так что до автора врядли удасться даже дозвонится, не говоря о остальном.


DesWind   (2004-08-24 12:48:00) [19]

Ошибся CanClose:=caNone


DesWind   (2004-08-24 12:45:00) [20]

Есть варант: написать программу которая не закрывается.
Если в OnCloseQuery написть CanClose:=caFree, то она незакроется, правда все остальные программы будут закрыты.
Коряво но больше предложить ничего не могу.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо