2

Я заметил, что определенная программа работает особым образом при отправке аргумента.

Единственный способ отправить аргумент - нажать «Пуск -> Выполнить ...» и ввести:

[programname]:[argument]

например, (который не работает в любом случае)

notepad:textfile.txt 

Если я попытаюсь сделать то же самое из окна командной строки, это не сработает. Ни один не делает "аргумент имени программы". Я должен иметь возможность открыть программу с аргументом с веб-сайта (с помощью оболочки Wscript, что является другой историей), но это, вероятно, не будет работать.

Кто-нибудь знает, как работает этот странный синтаксис двоеточия?

ОБНОВЛЕНИЕ: Как и требовалось, вот реальный пример:

AGS:pref.serv01.com(ARG1:ARG2)

Это точный синтаксис, в результате которого программа открывает специфическую информацию для ARG1 и ARG2. AGS - это просто название программы, которая является обычной windows-программой.

2 ответа2

1

Диалог Выполнить ... не ограничивается локальными файлами - он также принимает все схемы URI 1, зарегистрированные в системе. Например, вы можете открыть в нем адреса http: или ftp: . Возможно, какая-то программа просто зарегистрировала схему AGS: URI для этой цели. (Весь URI передается без изменений в программу, которая может применять свои собственные правила синтаксического анализа.)

Посмотрите на ключ HKEY_CLASSES_ROOT\AGS в редакторе реестра и посмотрите, говорит ли он что-нибудь о вашей программе, имеет ли она значение с именем « URL Protocol » и на что указывает подраздел shell\open\command .


1 Windows называет их "протоколами URL", что не совсем правильно.

0

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

Я думаю, что это невозможно сделать из аргумента командной строки, потому что парсер оболочки запутался. Диалог "запустить", однако, гораздо более разрешающий.

Если это так, вы можете попробовать извлечь его, просто:

c:> type program:argument > output

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .