Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.043 c
15-1169797740
zdm
2007-01-26 10:49
2007.02.18
GIF


3-1164675408
Draught
2006-11-28 03:56
2007.02.18
Формат даты в SQL запросе


15-1169306037
Mr. D.
2007-01-20 18:13
2007.02.18
Показ "панели задач" при работе TMediaPlayer


8-1150623699
T54
2006-06-18 13:41
2007.02.18
Непрерывное видео


15-1169821933
oldman
2007-01-26 17:32
2007.02.18
Расскажите про подводные камни, плиз...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский