我在Timer事件执行查找进程函数,会使虚拟内存增加

GlzCss 2011-04-05 12:05:55


//Timer执行函数
procedure TMainForm.ProcessControlTimerTimer(Sender: TObject);
begin
if (FindProcess(AppName) = TRUE) or (FindProcess('Lead_'+AppName) = TRUE) then
begin
//
end
else
ShellExecute(Application.Handle, 'Open', Pchar(ExtractFilePath(Application.ExeName) + 'Lead_AccessCtrl') ,'', nil,SW_SHOWNORMAL);
end;

//查找函数
function FindProcess(AFileName: string): boolean;
var
hSnapshot: THandle;//用于获得进程列表
lppe: TProcessEntry32;//用于查找进程
Found: Boolean;//用于判断进程遍历是否完成
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
Result := True;
break;
end;
Found := Process32Next(hSnapshot, lppe);//将进程列表的下一个进程信息读入lppe记录中
end;

CloseHandle(hSnapshot);
end;
...全文
99 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧