Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Регистрация включения и выключения ПК

1.9K
25 декабря 2007 года
Cool Xacker
148 / / 06.06.2006
Всем привет!!!

Хотю сделать прогу (вообщем уже на половину сделал), чтобы регистрировала дату и время включения/выключения ПК (всё закидывает в файл).

Программа запускается при включении ПК, создаёт файл, регистрирует нужные данные, но при выключении ПК, она не записывает данные (время и дату выключения программы).

Подкиньие мыслишку???

Может я что то не так делаю. В какое собитие формы или ещё чего надо записать нужную процедуру??? :confused:

Вот какую ошибку при закрытии пишет:

Цитата:
Project InvisiblePro.exe raised exception class EInOutError with message 'I/O error 103'. Process stopped. Use Step or Run to continue

11
25 декабря 2007 года
oxotnik333
2.9K / / 03.08.2007
FormClose
FormCloseQuery
1.9K
25 декабря 2007 года
Cool Xacker
148 / / 06.06.2006
Я записал туда процедуру записи в файл и закрытие, но при закрытии пишет ошибку (см. первое сообщение) :confused:
347
25 декабря 2007 года
Maniak
319 / / 05.11.2005
попробуй в форм дестрой...
1.9K
26 декабря 2007 года
Cool Xacker
148 / / 06.06.2006
я все возможные попробовал. при выключении windows? никаких записей не происходит :(
11
26 декабря 2007 года
oxotnik333
2.9K / / 03.08.2007
вот такая конструкция (в Билдере) работает:
 
Код:
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
  TStringList *lst = new TStringList;
  lst->Add("Выключение");
  lst->SaveToFile(ExtractFileDir(Application->ExeName)+"\\shtdown.txt");
  delete lst;
}
6
27 декабря 2007 года
George
4.1K / / 05.01.2007
Cool Xacker, код подавай!
Сделай запись в файл при открытии, прогу в автозагрузку. И запись в файл при закрытии.

P.S. У меня дежа-вю, как будто подобная тема уже была. :D Я так подозреваю, что чем больше торчишь на форуме, тем чаще дежа-вю ;)
251
27 декабря 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Cool Xacker

Хотю сделать прогу (вообщем уже на половину сделал), чтобы регистрировала дату и время включения/выключения ПК (всё закидывает в файл).


Еще один велосипедостроитель. В логах винды уже все написано до тебя. Остается лишь прочитать их. Мало того, что там время включения/выключения машины есть, так еще и что/кто инициировало выключение/загрузку/ошибку системы/программы/мозгов

1.9K
27 декабря 2007 года
Cool Xacker
148 / / 06.06.2006
я использую обычный файл для записи, вот мой листинг:

Цитата:
const
DBNAME = 'C:\otchet.db' ;
var
db: TextFile; // файл — база данных

// Информация о компьютере.
procedure TForm1.HardwareInfo;
var Size : cardinal;
PRes : PChar;
BRes : boolean;
lpSystemInfo : TSystemInfo;
begin
// Имя пользователя
Size:= MAX_COMPUTERNAME_LENGTH + 1;
PRes:= StrAlloc(Size);
BRes:= GetUserName(PRes, Size);
if BRes then label1.Caption := StrPas(PRes);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Caption:=DateToStr(Date)+' --- '+TimeToStr(Time);
form1.WindowState:=wsMinimized;
form1.Visible:=false;
HardwareInfo;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text:=DateToStr(Date);
form1.Caption:=DateToStr(Date)+' --- '+TimeToStr(Time);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
form1.CoolTrayIcon1.HideTaskbarIcon;
form1.Visible:=false;
Timer2.Enabled:=false;

end;

procedure TForm1.N1Click(Sender: TObject);
begin
form1.close;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.Text:=DateToStr(Date)+' '+TimeToStr(Time);
AssignFile(db, DBNAME);
try
if FileExists(DBNAME)=false
then
rewrite(db)
else
begin
Append(db);
end;
writeln(db,'Был включен ', form1.caption);
writeln(db,'Пользователь: ', label1.caption);
finally
end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeln(db, 'Был выключен '+form1.caption);
writeln(db, '----------------------------------');
CloseFile(db); // закрыть файл БД
form1.close;
end;



что не так???

6
27 декабря 2007 года
George
4.1K / / 05.01.2007
Цитата: Cool Xacker
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeln(db, 'Был выключен '+form1.caption);
writeln(db, '----------------------------------');
CloseFile(db); // закрыть файл БД
form1.close;
end;


form1.close поменяй на Action:=caClose;

286
27 декабря 2007 года
misha_turist
572 / / 28.11.2005
Цитата: SkyM@n
....В логах винды уже все написано до тебя. Остается лишь прочитать их....


А как?

6
27 декабря 2007 года
George
4.1K / / 05.01.2007
Наверное readln? :)
286
27 декабря 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Washington
Наверное readln? :)


:) А для какого FilePanch+FileName?;)

251
27 декабря 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: misha_turist
А как?


Пуск-Панель управления-Администрирование-Мой комп...

286
27 декабря 2007 года
misha_turist
572 / / 28.11.2005
Цитата: SkyM@n
Пуск-Панель управления-Администрирование-Мой комп...


:) Это я знаю. Вопрос в том, как програмно долезть....

251
27 декабря 2007 года
SkyMаn
1.7K / / 31.07.2007
А вот это другой вопрос. :)
через WMI это скорее всего делается.
Можно и с диска читать.
Можно и API применить, но имхо не стоит.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог