怎样判断进程列表中有没有名称为'rar.exe'的进程?我用findwindow不成功,help!

解决方案 »

  1.   

    Baidu到处有,用PSAPI或进程快照
      

  2.   

    [Delphi函数] 查找进程并显示在Memo中2007-05-11 08:07 A.M.uses TLHelp32
    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;
    end;
    Found := Process32Next(hSnapshot, lppe);//将进程列表的下一个进程信息读入lppe记录中
    end;
    end;
    Usage: if FindProcess('rar.exe') then memo1.Lines.Add('rar.exe!');
     
      

  3.   

    uses TLHelp32;procedure TForm1.Button1Click(Sender: TObject);
    var
     lppe: TProcessEntry32;
     found : boolean;
     Hand : THandle;
    begin
    Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    found := Process32First(Hand,lppe);
    while found do
    begin
    if SameText('rar.exe',StrPas(lppe.szExeFile)) then//在这里判断是否存在
      showmessage('rar.exe进程存在!');
    found := Process32Next(Hand,lppe);
    end;
    end;
    如果进程存在,则会弹出提示。
      

  4.   

    这个病毒是"极虎",据说说虎年最猛的病毒,未安装金山毒霸的用户可以免费下载金山毒霸贺岁版(http://www.duba.net/download/index.shtml),可完全防御极虎病毒。