#c_sharp
На этот вопрос уже даны ответы здесь: Быстрый запуск программы через CMD (2 ответа) Закрыт 2 года назад. К примеру, в командной строке достаточно написать "calc" и Enter, как появляется на экране калькулятор. Как сделать так, чтобы мой exe стал таким же "родным" как calc.exe? Т.е. после указания имени моего exe в командной строке осуществился запуск моей программы (Пример на скрине)? И еще попутно вопрос.Можно ли как-то узнать откуда стартанул мой exe? Именно не полный путь, где установлен, а именно как в примере на скрине "С:\Users\Александр". Т.е. запускаю ехе и в самой программе получаю именно этот путь.
Ответы
Ответ 1
Рекомендованный Microsoft способ — ключ реестра App Paths. В ключе реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths (для текущего юзера) или HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths положите подключ MyEXE.exe, а в его значение по умолчанию (Default) типа REG_SZ поместите полный путь к приложению. Вот тут есть код, который сделает это за вас. Проблем у PATH довольно много. Он добавляет к поиску не один файл, а целый каталог. На длину переменной PATH есть установленный лимит, и он может легко исчерпаться. Установка PATH в программах наследуется, а значит, если одна из программ поменяет PATH, то изменения будут видны некоторых приложениям, а некоторым нет.Ответ 2
Пути, по котором ищутся программы, задаются переменной path. В Windows есть две таких переменных - общесистемная и текущего пользователя. Так же можно для конкретного сеанска консоли изменить эти переменные командой (обращаю внимание, что кавычек нет, несмотря на пробелы в имени: set path c:\my magic folder;%path% Если надо узнать значение, то можно просто ввести D:\Temp\Supertemp>set path Чтобы найти программу, надо использовать команду where: D:\Temp\Supertemp>where calc C:\Windows\System32\calc.exe D:\Temp\Supertemp>where node C:\Program Files\nodejs\node.exe D:\Temp\Supertemp>where webpack C:\Users\Qwert\AppData\Roaming\npm\webpack C:\Users\Qwert\AppData\Roaming\npm\webpack.cmd Если вариантов несколько, обычно (если все программы exe) выполняется первый из списка. В случае с разными расширениями ситуация сложнее и начинает использоваться переменная pathext.
Комментариев нет:
Отправить комментарий