Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.08.2009, 04:06
Ghennadiy Ghennadiy вне форума
Прохожий
 
Регистрация: 25.08.2009
Сообщения: 17
Репутация: 10
Счастье Help

Здраствуйте, такой вопрос: как вызвать функцию в процедуре?
Код:
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;
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 25.08.2009 в 10:13.
Ответить с цитированием
  #2  
Старый 25.08.2009, 08:51
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию 1

Procedure Form1.ButtonClic(...) var dw: dword; begin dw:=GetPID('C:\1.exe');
end;
Ответить с цитированием
  #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: Предупреждение по оформлению кода! При рецедиве - бан!

Последний раз редактировалось Admin, 25.08.2009 в 17:44.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025