Hi
,
Ich wollte eine Logdatei erstellen und dort Aktionen aufzeichnen, die so im Programmverlauf passieren.
Ich wollte dies explizit mit der Windows-
API erreichen. Ich weiss, dass es auch AssignFile(), ReWrite() und Writeln() dafür gibt.
Aber etwas mit der Winows-
API umgehen zu können schadet ja nicht, oder?
So habe ich es probiert:
Delphi-Quellcode:
procedure LogEvent(lpEventStr: PAnsiChar);
var
logFilePath : Pchar;
hFile : Thandle;
ofStruct : _OFSTRUCT;
BytesWritten : DWORD;
begin
logFilePath := Pchar(ExtractFilePath(ParamStr(0))+'eventlog.txt');
hFile := OpenFile(logFilePath,ofStruct, OF_READWRITE OR OF_CREATE);
If hFile <> INVALID_HANDLE_VALUE Then
begin
SetFilePointer(hFile,0,nil,FILE_END);
WriteFile(hFile,lpEventStr,Length(lpEventStr),BytesWritten,nil);
end;
CloseHandle(hFile);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
LogEvent('Start');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LogEvent('Button klicked');
end;
Wenn ich nun das programm starte und ein paar mal auf den Button klicke steht am Ende soetwas in der Datei:
"DD"
Die Fragezeichen sind diese Kästchen.
Der Hexeditor sieht folgende Bytes in der Datei:
FC
DB 44 00 6C F7 12 00 FA
DB 44 00 6E E5
Weiss jemand wo der Fehler liegt und kann ihn mir bitte zeigen?
Ich bin etwas verwirrt, und weiss nich wo ich suchen soll.