
25.08.2009, 17:39
|
Прохожий
|
|
Регистрация: 25.08.2009
Сообщения: 17
Репутация: 10
|
|
Спасибо!! Вот кому пригодится получение пид по запущенному exe
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TlHelp32, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
function GetPID(aExeName: String): DWORD;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
aExeName = 'NOTEPAD.EXE';
implementation
{$R *.dfm}
function TForm1.GetPID(aExeName: String): DWORD;
var
hSnap: Cardinal;
ProcessEntry: TProcessEntry32;
Finding: LongBool;
begin
Result := 0;
aExeName := AnsiLowerCase(aExeName);
hSnap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hSnap = 0 then
Exit;
ProcessEntry.dwSize := SizeOf(ProcessEntry);
Finding := Process32First(hSnap, ProcessEntry);
while Finding do
begin
if aExeName = AnsiLowerCase(ExtractFileName(ProcessEntry.szExeFile)) then
begin
Result := ProcessEntry.th32ProcessID;
Break;
end;
Finding := Process32Next(hSnap,ProcessEntry);
end;
CloseHandle(hSnap);
end;
procedure TForm1.Button1Click(Sender: TObject);
var dw: dword;
begin
dw:=GetPID(aExeName);
OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_WRITE, False, dw);
Edit1.Text:=inttostr(dw);
end;
end.
Admin: Предупреждение по оформлению кода! При рецедиве - бан!
|