1、检查指定程序是否在运行 findprocess();
2、返回文件创建、修改、访问时间 getfiletime();
3、查找进程id FindProcessId();
4、字符串替换 replacesub();
1、检查指定程序是否在运行 findprocess();
function FindProcess(AFileName: string): boolean;
var
hSnapshot:THandle;//用于获得进程列表
lppe:TProcessEntry32;//用于查找进程
Found:Boolean;//用于判断进程遍历是否完成
KillHandle:THandle;//用于杀死进程
begin
Result:=False;
hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得系统进程列表
lppe.dwSize:=SizeOf(TProcessEntry32);//在调用Process32First API之前,需要初始化lppe记录的大小
Found:=Process32First(hSnapshot,lppe);//将进程列表的第一个进程信息读入ppe记录中
while Found do
begin
if ((UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AFileName)) or (UpperCase(lppe.szExeFile )=UpperCase(AFileName))) then
begin
//showmessage('找到进程');
//memo2.lines.add('found');
Result:=True;
end;
Found:=Process32Next(hSnapshot,lppe);//将进程列表的下一个进程信息读入lppe记录中
end;
end;
2.获取文件创建、修改、访问时间
function GetFileTime(const Tf:string):string;
{ 获取文件时间,Tf表示目标文件路径和名称 }
const
Model='yyyy/mm/dd,hh:mm:ss'; { 设定时间格式 }
var
Tp:TSearchRec; { 申明Tp为一个查找记录 }
T1,T2,T3:string;
begin
FindFirst(Tf,faAnyFile,Tp); { 查找目标文件 }
T1:=FormatDateTime(Model,CovFileDate(Tp.FindData.ftCreationTime));
{ 返回文件的创建时间 }
T2:=FormatDateTime(Model,CovFileDate(Tp.FindData.ftLastWriteTime));
{ 返回文件的修改时间 }
T3:=FormatDateTime(Model,Now);
{ 返回文件的当前访问时间 }
FindClose(Tp);
result:=T1
end;
3.查找进程id
function FindProcessId(ExeFileName: string):THandle;
var
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
begin
result:=0;
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop)<>0 do
begin
if UpperCase(FProcessEntry32.szExeFile)=UpperCase(ExeFileName) then
begin
result:=FProcessEntry32.th32ProcessID;
break;
end;
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle (FSnapshotHandle);
end;
4.字符串替换
Function ReplaceSub(str, sub1, sub2: String): String;
var
aPos: Integer;
rslt: String;
begin
aPos := Pos(sub1, str);
rslt := '';
while (aPos <> 0) do begin
rslt := rslt + Copy(str, 1, aPos - 1) + sub2;
Delete(str, 1, aPos + Length(sub1)-1);
aPos := Pos(sub1, str);
end;
Result := rslt + str;
end;
阅读(696) | 评论(0) | 转发(0) |