Чтобы уточнить: Вопрос действительно: Как найти клиент командной строки Mercurial. Если ответ применим к любому исполняемому файлу, тем лучше, но меня действительно интересует исполняемый файл hg.exe
.
Если я знаю имя исполняемого файла, скажем hg.exe
, клиент командной строки Mercurial, и Windows знает, где он, потому что я могу выполнить только hg log
из командной строки, и он выполняет, какие шаги участвуют в заказать для меня сам этот исполняемый файл так же, как это делает командная строка и Windows?
В принципе, если Windows сможет найти его, я хочу, чтобы моя программа могла его найти.
Есть ли функция WinAPI или аналогичная? Код будет работать в .NET, написанном на С#, поэтому, если что-то встроенное в .NET для этого было бы предпочтительным решением, но в остальном я не против использования P/Invoke для этого.
Я видел один потенциальный дубликат этого вопроса: С# Проверить, существует ли исполняемый файл в пути к окну, но это все, что ему нужно? Просто перебирайте содержимое переменной среды PATH
и просматриваете в каждом из этих каталогов исполняемый файл?
У меня есть неопределенное представление о том, что это только один из шагов, и возможно, что есть переопределения реестра, которые Windows может использовать, о которых я должен знать, поэтому я отправлю вопрос здесь.
Если, с другой стороны, в игре действительно есть только переменная PATH, ее можно, вероятно, безопасно закрыть как дубликат.