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

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

Отключение от сети [D7, XP]


Lera ©   (2007-01-31 12:44:00) 

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


Vlad Oshin   (2007-01-31 15:06:00) [1]


> "Какое количество ошибок в программе можно считать приемлимым?
> "

ну дык, ясен перец - на сколько пользователь согласен
:)


> Lera   (31.01.07 13:03) [8]
> а если никого нет...надо зафиксировать событие и момент

об этот вопрос сломали 2 вагона копий :) и не выяснили, насколько помню.
мышь/клава? а если программа, например, не предусматривает работу с мышкой/клавой?
и т.п.

проще поставить таймер с интервалом через сколько времени считать что пользователя нет. Затем спросить его, не ушел ли он и подождать ответ столько же. ontimer- if b then никого else вопрос и b:=true
Обнулять таймер при каждом действии программы. т.е. timer1.interval:=0; предшествует любому коду. и учесть долгие циклы/расчеты, тогда и туда впихнуть.


Ega23   (2007-01-31 13:24:00) [2]


> а дальше стало не интересно :)


Ну да. А потом вот и спрашивают: "Какое количество ошибок в программе можно считать приемлимым?"   :)


Vlad Oshin   (2007-01-31 13:13:00) [3]

а дальше стало не интересно :)


Ega23   (2007-01-31 13:10:00) [4]


> Vlad Oshin ©   (31.01.07 13:09) [9]


А где freeLibrary???   :)


Vlad Oshin   (2007-01-31 13:09:00) [5]


> А он сам событие на COM-порт пришлёт. Главное его словить.
> ..  :)

писал как то вот так

 lpSystemPowerStatus=^tPowerSt;
 tPowerSt=record
   ACLineStatus:byte;
   BatteryFlag:byte;
   BatteryLifePercent:byte;
   Reserved1:byte;
   BatteryLifeTime:Dword;
   BatteryFullLifeTime:dword;
           end;
TNtQSI = function(Ptr: Pointer): DWORD; stdcall;

var
 Form1: TForm1;
 NtQSI : TNtQSI;
 Buf   : array [1..20480] of char;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
hLib : DWORD;
// Buf   : array [1..20480] of char;
PS:lpSystemPowerStatus;
// ptr:pointer;
begin
memo1.Lines.Clear;
hLib := LoadLibrary('kernel32.DLL');
if hLib>0 then    begin
   @NtQSI := GetProcAddress(hLib,'GetSystemPowerStatus');
   NtQSI(@Buf);
   PS:=addr(buf);
   memo1.Lines.Add(inttostr(PS.ACLineStatus));
   memo1.Lines.Add(inttostr(PS.BatteryFlag));
   memo1.Lines.Add(inttostr(PS.BatteryLifePercent));
   memo1.Lines.Add(inttostr(PS.Reserved1));
   memo1.Lines.Add(inttostr(PS.BatteryLifeTime));
   memo1.Lines.Add(inttostr(PS.BatteryFullLifeTime));
                 end;

end;


Ega23   (2007-01-31 13:09:00) [6]


> а как именно обратиться к виндоусу для проверки наличия
> информационной сети?


Пингуй что-нибудь. Как только пинг оборвался - капец.


Lera   (2007-01-31 13:03:00) [7]

а если никого нет...надо зафиксировать событие и момент


Sergey13   (2007-01-31 12:56:00) [8]

> [6] Lera   (31.01.07 12:53)

А нафига тебе это все? Сиди смотри: экран погас - записала шариковой ручкой в бортовой журнал.


Lera   (2007-01-31 12:53:00) [9]

а как именно обратиться к виндоусу для проверки наличия информационной сети?


Ega23   (2007-01-31 12:52:00) [10]


> спросить упс, если он есть. Или заранее писать что выключен,
>  передвигая по таймеру срок. При нормальном завершении стереть
> записать
>


А он сам событие на COM-порт пришлёт. Главное его словить...  :)


Vlad Oshin   (2007-01-31 12:50:00) [11]


> или электрической сети

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


> от информационной

Ну, что-то явно происходит... почитать на что реагирует виндовс


Ega23   (2007-01-31 12:48:00) [12]


> Как мертвому определить, что он умер ?)
>


Есть нюансы...


Сергей М.   (2007-01-31 12:46:00) [13]


> как определить ... что .. машина отключена от ..электрической сети


Как мертвому определить, что он умер ?)


Ega23   (2007-01-31 12:46:00) [14]

от LAN отключен, или питание на UPS перешло? Или оба варианта?


Наверх

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