Chinaunix首页 | 论坛 | 博客
  • 博客访问: 230384
  • 博文数量: 73
  • 博客积分: 3005
  • 博客等级: 中校
  • 技术积分: 857
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-24 10:11
文章分类

全部博文(73)

文章存档

2014年(2)

2011年(5)

2010年(29)

2009年(32)

2008年(5)

我的朋友

分类:

2009-11-17 17:08:11

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;
 
 
阅读(643) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~