2015-09-25 3 views
3

Это работает (Notepad ++):Run .exe где-нибудь в ЦМД без PATH переменной

C:\Anywhere> start notepad++ hello.txt 

И это работает (SOX для удаления тишины в звуках):

C:\Anywhere> sox in.wav out1.wav silence 1 0.1 1% 

Тем не менее, мой PATH переменная не включает ни (посылает по запросу).

Как я могу это сделать с помощью моей программы?
Бежать от везде.

Кроме того, почему Notepad ++ работает без команды start?

(я сделал это временное решение, поставив EXE-файл в C:. \, А затем просто вызвать C:\Anywhere> /myprogram, но я все еще интересно выше)

ответ

4

Чтобы получить указанный сценарий, в котором

  • вы можете запускать приложения из любой точки с помощью start команды (или окна диалога Run), не включая его родительскую папку в path переменной,
  • , но вы не можете запустить а, РИМЕНЕНИЕ без start команды из любого каталога Whithout включая полный путь, чтобы достичь ее (не в path) или быть расположенным в adecuated каталога

приложение включены в реестре под ключом

HKEY_CLASSES_ROOT\Applications 

примечание: это "merged" view показывая объединенные содержимое

HKEY_LOCAL_MACHINE\Software\Classes\Applications 
HKEY_CURRENT_USER\Software\Classes\Applications 

Если вы не являетесь администратором, чтобы изменить конфигурацию локального компьютера, вы всегда можете изменить информацию своего реестра пользователей, чтобы включить необходимые вам приложения.

отредактирован Существует второе место в реестре, что позволит включить приложение в реестре, который будет выполняться с использованием start команды, Run диалог или от чего-либо, что использует ShellExecute или ShellExecuteEx API вызовов.

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\