Как узнать путь к программе, известно ее имя |
Previous Top Next |
Code: |
unit Unit1; {©Drkb v.3(2007): www.drkb.ru}
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; end;
var Form1: TForm1;
implementation
{$R *.dfm}
uses TlHelp32;
function GetExeFilePath(ExeFileName: String): String; var hSnapshot, hSnapshot2: THandle; Proc: TProcessEntry32; m: TModuleEntry32; begin Result := ''; hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); try proc.dwSize := Sizeof(proc); if Process32First(hSnapshot, proc) then repeat if AnsiSameText(proc.szExeFile, ExeFileName) then begin hSnapshot2 := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, proc.th32ProcessID); try m.dwSize := SizeOf(TModuleEntry32); if Module32First(hSnapshot2, m) then begin Result := m.szExePath; Exit; end; finally CloseHandle(hSnapshot2); end; end; until not Process32Next(hSnapshot, proc); finally CloseHandle(hSnapshot); end; end;
|
Взято из http://forum.sources.ru
Автор: Rouse_, P.O.D.
©Drkb::02121