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