Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Получение полного пути к программе   Найти похожие ветки 

 
Esu   (2002-08-19 19:44) [0]

Вот такая функция позвращает только имя файла но не путь к нему, хотя в дельфовом helpе написано:
"
szExeFile

Path and filename of the executable file for the process.
"

function GetExeFileName(Wnd: HWND): String;
var
ProccessID: THandle;
hSnapShot: THandle;
ProcessEntry32: TProcessEntry32;
begin
Result:= "";
GetWindowThreadProcessId(Wnd, @ProccessID);
hSnapShot:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
ProcessEntry32.dwSize:= SizeOf(TProcessEntry32);
if Process32First(hSnapShot, ProcessEntry32) then
repeat
if ProcessEntry32.th32ProcessID = ProccessID then
Result:= String(ProcessEntry32.szExeFile);
until Process32Next(hSnapShot, ProcessEntry32) = False;
finally
CloseHandle(hSnapShot);
end;
end;

Заранее благодарен.


 
kima   (2002-08-19 19:50) [1]

как насчет ExtractFilePath(Application.ExeName);?


 
Esu   (2002-08-19 19:59) [2]

Никак поскольку собственно мне и нужен Application.ExeName (как из него что получить уж разберусь). Только для другого приложения (не моего).


 
Esu   (2002-08-19 21:46) [3]

up


 
kima   (2002-08-19 21:50) [4]

сори не понял...


 
-= Like =-   (2002-08-19 21:55) [5]

Application.ExeName - возвращает полный путь и имя приложения.
ExtractFilePath(Application.ExeName) - возвращает только путь.

Непонятно, зачем ты используешь такую громоздкую процедуру?


 
alena.svt   (2002-08-19 22:23) [6]

А вот так попробуй.
Result:= IncludeTrailingBackSlash(ExtractFilePath(String(ProcessEntry32.szExeFile)))+String(ProcessEntry32.szExeFile);


 
Esu   (2002-08-20 16:56) [7]


> -= Like =-

Потому что мне нужно узнать не полный путь к своей программе, а полный путь к программе которая породила окно с данным HWND.

alena.svt

У меня ProcessEntry32.szExeFile = ("F","a","r",".","e","x","e", #0)

Спасибо всем проявившим желание помочь :)


 
Esu   (2002-08-20 17:05) [8]

Для справки эта функция нормально работает под win9x, под NT проблема. Возможно нужны какие-то права.


 
Игорь Шевченко   (2002-08-20 17:23) [9]


> Потому что мне нужно узнать не полный путь к своей программе,
> а полный путь к программе которая породила окно с данным
> HWND.


GetWindowModuleFileName ?


 
alena.svt   (2002-08-20 19:12) [10]

Если вы вначале говорили что все выводиться
То есть например если ваша функция не бита то
Result:= String(ProcessEntry32.szExeFile);
Label.Capton:=Result;
И в лабеле должно было быть написано например Far.exe
Я же вам дала
ПроверитьСлеш(Путь к файлу)+ имя файла
Если у вас функция рабочая то проблем бы не было.
И прислушайтесь к совету Игорь Шевченко © (20.08.02 17:23)


 
Esu   (2002-08-21 14:57) [11]


> alena.svt

Дело в том что функция работает не так как ожидается. Тоеть возвращает far.exe, а не c:\...\far.exe

> Игорь Шевченко

Самое интерестное что работает нормально только для моего процесаа, а для остальных отображает caption.

Видимо нужно получить некоторые права для просмотра такой информации.



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

Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
7-3648
DeMoN-777
2002-06-18 14:13
2002.09.02
Ждущий режим в WinNT 2000 XP


14-3627
YP
2002-08-05 17:21
2002.09.02
срочно нужен аудио-конвертер


1-3503
maxim2
2002-08-21 13:40
2002.09.02
В каком файле находится исходник DBGrid ?


14-3622
SkyQuakeR
2002-08-08 15:31
2002.09.02
Нужен массив TImage!!!


1-3468
Lora
2002-08-21 07:03
2002.09.02
Создание и использование файла ресурса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский