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

Вниз

Помогите найти ошибку, плиз   Найти похожие ветки 

 
RDS ©   (2006-01-05 21:20) [0]

есть код
unit ProcList;

interface

uses classes, SysUtils, tlhelp32, windows;

type
 TSnapItem=record
   ProcessID: DWORD;
   Name: string[255];
 end;
type
 TDiffSnapItem=record
   SnapTime: TDateTime;
   ItemType: Boolean; // 0 - äîáàâèëñÿ, 1 - óáðàëñÿ ýëåìåíò
   Item: TSnapItem;
 end;

type
 TSnapShot=class
// Îáùèå
   Logging: boolean;
   LogFileName: string;
// Îïîðíûé ñíèìîê
   ControlSnapTime: TDateTime;
   ControlSnapCount: integer;
   ControlSnap: array of TSnapItem;
// Äèôôåðåíöèàëüíûé ñíèìîê
   DiffSnapCount: integer;
   DiffSnap: array of TDiffSnapItem;
// ïðîöåäóðû
   constructor Create;
   destructor Destroy; override;
   procedure Clear;
   procedure CreateControlSnap;
   function LogInit(Continue: boolean): boolean; // 0 - rewrite, 1 - reset
   procedure LogClose;
 private
   LogFile: text;
   LastSnapCount: integer;
   LastSnap: array of TSnapItem;
   procedure CreateSnap;
   procedure LastSnapAddItem(Item: TSnapItem);
   procedure WriteControlSnapToLog;
 end;

implementation

constructor TSnapShot.Create;
begin
//  inherited Create;
end;

destructor TSnapShot.Destroy;
begin
 inherited Destroy;
end;

procedure TSnapShot.Clear;
begin
 SetLength(ControlSnap,0);
 ControlSnapCount:=0;
 SetLength(DiffSnap,0);
 DiffSnapCount:=0;
 SetLength(LastSnap,0);
 LastSnapCount:=0;
end;

procedure TSnapShot.CreateControlSnap;
var i: integer;
begin
 Clear;
 ControlSnapTime:=now;
 CreateSnap;
 ControlSnapCount:=LastSnapCount;
 SetLength(ControlSnap,ControlSnapCount);
 for i:=0 to LastSnapCount-1 do ControlSnap[i]:=LastSnap[i];
 if Logging then WriteControlSnapToLog;
end;

function TSnapShot.LogInit;
begin
 Logging:=true;
 if LogFileName<>"" then
{$I-}
 try
   assignfile(LogFile,LogFileName);
   if Continue then begin
     Append(LogFile);
   end else begin
     Rewrite(LogFile);
   end;
 except
   Logging:=false;
 end;
{$I+}
 result:=Logging;
end;

procedure TSnapShot.LogClose;
begin
{$I-}
 closeFile(LogFile);
{$I+}
end;
// private

procedure TSnapShot.CreateSnap;
var
 hSnap: THandle;
 Data: TProcessEntry32;
 item: TSnapItem;
 c:integer;
begin
 hSnap:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
 if Process32First(hSnap,Data) then begin
   Item.ProcessID:=Data.th32ProcessID;
   Item.Name:=string(Data.szExeFile);
   LastSnapAddItem(Item);
   while Process32Next(hSnap,Data) do begin
     Item.ProcessID:=Data.th32ProcessID;
     Item.Name:=string(Data.szExeFile);
     LastSnapAddItem(Item);
   end;
 end else begin
   // &#238;&#225;&#240;&#224;&#225;&#238;&#242;&#234;&#224; &#238;&#248;&#232;&#225;&#234;&#232;
   Item.ProcessID:=0;
   Item.Name:="SnapShot error";
   LastSnapAddItem(Item);
 end;
end;

procedure TSnapShot.LastSnapAddItem;
begin
 inc(LastSnapCount);
 setLength(LastSnap,LastSnapCount);
 LastSnap[LastSnapCount-1]:=Item;
end;

procedure TSnapShot.WriteControlSnapToLog;
var
 s: string;
 i: integer;
begin
 s:=DateTimeToStr(ControlSnapTime);
{$I-}
 writeln(logFile,s);
 for i:=0 to ControlSnapCount-1 do begin
   s:=ControlSnap[i].Name;
   writeln(s);
{$I+}
 end;
end;

end.


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

Помогите, плиз


 
Anatoly Podgoretsky ©   (2006-01-05 21:22) [1]

"но получаю ошибку." - точно?


 
Gero ©   (2006-01-05 21:24) [2]

Какую ошибку?


 
Almaz ©   (2006-01-06 06:31) [3]

Так, сразу в глаза бросилось:

procedure TSnapShot.WriteControlSnapToLog;
var
s: string;
i: integer;
begin
s:=DateTimeToStr(ControlSnapTime);
{$I-}
writeln(logFile,s);
for i:=0 to ControlSnapCount-1 do begin
  s:=ControlSnap[i].Name;
  writeln(s);
{$I+}
end;
end;


Забыли logfile в writeln. А вообще, если хотите помощи, то неплохо было бы хотя бы написать какую ошибку получаете.

Удачи.



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

Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.054 c
1-1134418291
Jenya
2005-12-12 23:11
2006.01.22
Изменить цвет строки в компоненте TlistView???


14-1135874295
ПЛОВ
2005-12-29 19:38
2006.01.22
Кто нибудь юзает xD Picture Card


1-1134651632
DN
2005-12-15 16:00
2006.01.22
Как загрузить картинку в Image из некоего URL


1-1135067057
Stanislav
2005-12-20 11:24
2006.01.22
Перемещение объекта в TScrollBox


4-1131450193
MixAnOL
2005-11-08 14:43
2006.01.22
CreateProcess и SW_SHOWNOACTIVATE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский