Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

Отключение от сети   Найти похожие ветки 

 
Lera   (2007-01-31 12:44) [0]

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


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


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


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


 
Ega23 ©   (2007-01-31 12:46) [2]

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


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


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


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


 
Vlad Oshin ©   (2007-01-31 12:50) [4]


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

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


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

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


 
Ega23 ©   (2007-01-31 12:52) [5]


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


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


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

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


 
Sergey13 ©   (2007-01-31 12:56) [7]

> [6] Lera   (31.01.07 12:53)

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


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

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


 
Vlad Oshin ©   (2007-01-31 13:09) [9]


> А он сам событие на 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) [10]


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


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


 
Ega23 ©   (2007-01-31 13:10) [11]


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


А где freeLibrary???   :)


 
Vlad Oshin ©   (2007-01-31 13:13) [12]

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


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


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


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


 
Vlad Oshin ©   (2007-01-31 15:06) [14]


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.02.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.043 c
15-1169626096
Empleado
2007-01-24 11:08
2007.02.18
Вот где красотища-то!


15-1170147304
stone
2007-01-30 11:55
2007.02.18
Хотел бы я на это посмотреть :)


2-1170347053
Garacio
2007-02-01 19:24
2007.02.18
настройки Button


6-1158158813
Орион
2006-09-13 18:46
2007.02.18
TIdHTTP и подвисание приложения


15-1169650871
Ксардас
2007-01-24 18:01
2007.02.18
Объясните как это работает, а?