Тема: Help
Показать сообщение отдельно
  #3  
Старый 25.08.2009, 17:39
Ghennadiy Ghennadiy вне форума
Прохожий
 
Регистрация: 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: Предупреждение по оформлению кода! При рецедиве - бан!
Ответить с цитированием