Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Как получить рабочий каталог, имя только handle.   Найти похожие ветки 

 
demonyator ©   (2003-05-25 21:07) [0]

С помощью следующей функции вытягиваю .exe из handle, но надо ещё и узнать в какой директории он находится.... может кто знает где копать?

Вот моя функция:
Function GetExeFromHandle(var Hand:LongInt):String;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
AProcessID : DWORD;
begin
result :="";
GetWindowThreadProcessID(Hand,AProcessID);
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do begin
if AProcessID=FProcessEntry32.th32ProcessID then Result:=FProcessEntry32.szExeFile;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;


 
Song ©   (2003-05-25 22:41) [1]

Из справки по Process32First/Next:

szExeFile

Path and filename of the executable file for the process.


 
МДа..   (2003-05-25 22:44) [2]

А так не потянет?

procedure TForm1.Button1Click(Sender: TObject);
var Lib: THandle;
begin
Lib := LoadLibrary("explorer.exe");
Edit1.Text := GetModuleName(Lib);
FreeLibrary(Lib)
end;


 
МДа..   (2003-05-25 22:53) [3]

Ну и, разумеется, ExtractFilePath.. Если правильно понял.


 
jack128 ©   (2003-05-25 23:29) [4]

Song © (25.05.03 22:41)
Я тоже на такое наткнулся,в хелпе неправильно написано.


 
demonyator ©   (2003-05-26 01:00) [5]


> Song
Path and filename of the executable file for the process.
то то и оно, что только fileName и никакого path :( Обманул нас дядя Билли


 
demonyator ©   (2003-05-26 01:58) [6]


> МДа..

Этот код не подходит... если запустить, к примеру, Windows Commander и прописать Lib := LoadLibrary("wincmd32.exe") - эта функция просто вернёт путь к моей проге.


 
VMcL ©   (2003-05-26 14:32) [7]

>Song © (25.05.03 22:41)

Путь возвращается только в Win9x. В Win2K+ только имя файла без пути. Если мне не изменяет склероз, в NT-шках нужно юзать NTQuerySystemInformation.


 
VMcL ©   (2003-05-26 14:37) [8]

>VMcL © (26.05.03 14:32)

С NTQuerySystemInformation я лоханулся. Почитай что-нибудь типа этого http://msdn.microsoft.com/library/en-us/perfmon/base/about_psapi.asp


 
demonyator ©   (2003-05-26 18:38) [9]

... иногда поражаешься красоте и простоте всего этого, но бывает, что поражаться приходится сложности написания простых вещей...


 
demonyator ©   (2003-05-26 18:43) [10]


> VMcL
ничего.



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
1-100785
Beginner3000
2003-07-16 00:46
2003.07.31
Модули


1-100760
tovSuhov
2003-07-16 15:58
2003.07.31
TSaveDialog


14-100934
race1
2003-07-13 15:41
2003.07.31
momed COM


8-100841
Intell
2003-04-04 06:30
2003.07.31
Как узнать разрешение видео?


14-100950
neuro
2003-07-14 20:48
2003.07.31
формат evt