[WinAPI] Получить полный путь к файлу

Corrector

Я запускаю с помощью функции ShellExecute некоторое приложение, допустим, myprog.exe.
При этом путь к приложению myprog.exe добавлен в переменную окружения Path, поэтому я могу при запуске указать только имя приложения без полного пути.
Сейчас возникла задача узнать полный путь к myprog.exe, зная только это имя exe-шника.
Желательно не перебирая все значения Path. Можно ли это сделать одной API-функцией?

pitrik2

ну а нельзя как бы открыть файл?
тогда и путь узнаешь
в джаве это например: File f = new File("myprog.exe")
f.getFullPath;

Corrector

надо сделать на голом API

Corrector

Не годится, функция GetFullPathName тупо добавляет к имени файла текущую директорию

Corrector

Нашел, это функция
DWORD WINAPI SearchPath(LPCTSTR lpPath, LPCTSTR lpFileName, LPCTSTR lpExtension, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR* lpFilePart);

mkrec

разве в джаве файл откроется в нужной директории?
я сомневаюсь, что задача имеет общее решение. В винде не любая запускаемая "вещь" имеет адрес. Например, его не имеют встроенные команды типа copy. Или, скажем, довольно изощренный пример: работающая программа может не лежать на диске. Вроде, таким образом старые проги добивались своего удаления (скажем, при анинстолле то есть пример имеет некоторую практическую значимость.

0000

GetModuleFileName?
Оставить комментарий
Имя или ник:
Комментарий: