Como funciona a chamada de um programa no Windows XP a partir de "Executar..." com um argumento de dois pontos?

Como funciona a chamada de um programa no Windows XP a partir de "Executar..." com um argumento de dois pontos?

Percebi que determinado programa funciona de maneira especial ao enviar um argumento.

A única forma de enviar um argumento é clicando em "Iniciar -> Executar..." e digitando:

[programname]:[argument]

por exemplo (que não funciona de qualquer maneira)

notepad:textfile.txt 

Se eu tentar fazer o mesmo em uma janela de linha de comando, não funcionará. Nem o "argumento do nome do programa". Devo conseguir abrir o programa com um argumento de um site (com shell Wscript, que é outra história), mas provavelmente não funcionará.

Alguém tem ideia de como funciona essa estranha sintaxe de dois pontos?

ATUALIZAÇÃO: Conforme solicitado, aqui está um exemplo real:

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

Essa é a sintaxe exata, que faz com que o programa abra as informações específicas para ARG1 e ARG2. AGS é apenas o nome do programa que é um programa normal do Windows.

Responder1

OCorrer...A caixa de diálogo não está limitada a arquivos locais – ela também aceita todos os esquemas de URI 1 registradono sistema, por exemplo, você pode abrir http:ou ftp:endereços nele. É possível que algum programa simplesmente tenha registrado o AGS:esquema URI para essa finalidade. (Todo o URI é passado sem modificações para o programa, que pode aplicar suas próprias regras de análise.)

Dê uma olhada na HKEY_CLASSES_ROOT\AGSchave no Editor do Registro e veja se ela diz alguma coisa sobre o seu programa, se possui um valor chamado " URL Protocol" e para onde shell\open\commandaponta a subchave.


1 O Windows os chama de “protocolos URL”, o que não é totalmente correto.

Responder2

O caractere dois pontos é usado para se referir aFluxos de dados alternativosem NTFS. Talvez o seu programa tenha fluxos de dados ocultos com executáveis.

Acho que isso não pode ser feito a partir do argumento da linha de comando, porque o analisador do shell fica confuso. A caixa de diálogo "executar", entretanto, é muito mais permissiva.

Se for assim, você pode tentar extraí-lo simplesmente:

c:> type program:argument > output

informação relacionada