Вопрос чисто по WinAPI, может кто подскажет? Не знал, в какой теме его лучше задать.
Несколько часов мучил поиск в Google, но он выдаёт ответы в несколько другом направлении.
Задача следующая:
1. Исходные данные:
- Есть имя исполняемого файла - например, "far", "sfk" или "greenshot"
2. Требуется:
- Найти полный путь к указанному исполняемому файлу - то есть вернуть, например:
"C:\FAR3\Far.exe" (полный путь и расширение файла получены из текущей папки);
"C:\Tools\sfk\sfk.exe" (полный путь к файлу получен из %PATH%);
"C:\Tools\greenshot.bat" (полный путь к файлу получен из %PATH%, обратите внимание на расширение .bat).
У меня есть подозрение, что существуют функции WinAPI, позволяющие автоматизировать такой поиск.
Иначе придётся вручную пробегаться по всем путям из списка %PATH%, и по каждому пути вручную искать файл с расширением из списка %PATHEXT%.
WinAPI: найти путь к исполняемому файлу по его имени
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
WinAPI: найти путь к исполняемому файлу по его имени
Допустим, надо найти "greenshot".
1.
2. AltF7 ShiftIns Tab Del
3. Выбираем Select Search Area = "In PATH folders"
4. Enter
Естественно, если подобная задача нужна часто, то можно больше автоматизировать.
1.
lua: far.CopyToClipboard(win.GetEnv('pathext'):gsub('%.','greenshot.'),nil)
2. AltF7 ShiftIns Tab Del
3. Выбираем Select Search Area = "In PATH folders"
4. Enter
Естественно, если подобная задача нужна часто, то можно больше автоматизировать.
Last edited by Shmuel on Sat 02 Feb, 2019 16:36, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
WinAPI: найти путь к исполняемому файлу по его имени
Кое-что есть из коробки:
win.SearchPath
https://msdn.microsoft.com/library/aa365527
Расширения можно брать из %PATHEXT%, а всё остальное сделает функция.
win.SearchPath
https://msdn.microsoft.com/library/aa365527
Расширения можно брать из %PATHEXT%, а всё остальное сделает функция.
- buniak_a_h
- Posts: 4268
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
WinAPI: найти путь к исполняемому файлу по его имени
Если надо не просто найти, но и перейти в ФАРе к найденному, то набрать в командной строке
whereis:<имя файла>
. Я этим так часто пользуюсь, что сделал макрос:
Это - при наличии плагина FAR Commands, но он входит в комплект поставки
Last edited by buniak_a_h on Sat 02 Feb, 2019 18:21, edited 2 times in total.
WinAPI: найти путь к исполняемому файлу по его имени
Спасибо за ответы!
Из того, что я вижу, особенно в коде FAR, выходит, что Microsoft поощряет изобретение велосипедов для действия, которое точно выполняется самой системой при каждом запуске файла из консоли...
Из того, что я вижу, особенно в коде FAR, выходит, что Microsoft поощряет изобретение велосипедов для действия, которое точно выполняется самой системой при каждом запуске файла из консоли...
WinAPI: найти путь к исполняемому файлу по его имени
buniak_a_h,
святые угодники, а я и не знал про то что это в ФАРе искоропки
лично я всегда использовал утилиту where, в виндае она встроенная тоже
дает список всех кого найдет в путях, ищет и по маске:
святые угодники, а я и не знал про то что это в ФАРе искоропки
лично я всегда использовал утилиту where, в виндае она встроенная тоже
дает список всех кого найдет в путях, ищет и по маске: