查找一个特定的EXE是否在内存中运行

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

摘要:查找一个特定的EXE是否在内存中运行

unit Find_Unit;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, TLHelp32, ComCtrls;

type

TProcessInfo=Record

ExeFileName:String;

ProcessID:DWord;

end;

type

TFindForm = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

SB: TStatusBar;

Label1: TLabel;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

function findthread(threadname:string):boolean;

private

{ Private declarations }

public

{ Public declarations }

end;

var

FindForm: TFindForm;

implementation

{$R *.DFM}

procedure TFindForm.Button1Click(Sender: TObject);

var hfile:thandle; r:boolean; tf:string;

begin

r:=false; //查找空间变量是否存在 eg: in win2000 "cdrom0" is a space value

hfile:=createfile(pchar(edit1.Text),Generic_Read or

Generic_Write,File_Share_Read or File_Share_Write,

nil,Open_Existing,File_Attribute_Normal,0);

if hfile<>Invalid_Handle_Value then

begin

CloseHandle(hfile);

r:=true;

end;

if r then sb.Panels[0].Text:=’Space Find!’ else sb.Panels[0].Text:=’Space Not Found!’;

tf:=edit2.text;

if pos(’.’,tf)=0 then tf:=tf+’.exe’;

if findthread(tf) then sb.Panels[1].Text:=’Thread Find!’ else sb.Panels[1].Text:=’Thread Not Found!’;

end;

function TFindForm.findthread(threadname: string): boolean;

var //关键的过程

p:TProcessInfo;

OK:Bool;

ProcessListHandle:THandle;

ProcessStruct:TProcessEntry32;

begin

result:=false;

ProcessListHandle:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);

ProcessStruct.dwSize:=SizeOf(ProcessStruct);

OK:=Process32First(ProcessListHandle,ProcessStruct);

while Integer(OK)<>0 do

begin

p.ExeFileName:=ProcessStruct.szExeFile;

// p.ProcessID:=ProcessStruct.th32ProcessID;

OK:=Process32Next(ProcessListHandle,ProcessStruct);

if uppercase(p.ExeFileName)=uppercase(threadname) then begin result:=true; exit; end;

end;

closehandle(ProcessListHandle);

end;

end.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有