Текущий архив: 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.46 MB
Время: 0.009 c