Como é que chamar um programa no Windows XP a partir de “Run…” com um argumento de dois pontos funciona?

2

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

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

[programname]:[argument]

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

notepad:textfile.txt 

Se eu tentar fazer o mesmo a partir de uma janela de linha de comando, isso não funcionará. Nem o argumento "programname". Eu devo ser capaz de abrir o programa com um argumento de um site (com shell Wscript, que é outra história), mas isso provavelmente não funcionará.

Alguém tem idéia de como essa sintaxe estranha do cólon funciona?

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

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

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

    
por Community 09.09.2011 / 21:30

2 respostas

1

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

Dê uma olhada na chave HKEY_CLASSES_ROOT\AGS no Editor do Registro e veja se ela diz algo sobre o seu programa, se tem um valor chamado " URL Protocol ", e o que a shell\open\command subchave em .

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

    
por 09.09.2011 / 22:31
0

O caractere de dois pontos é usado para se referir a Fluxos de dados alternativos em NTFS. Talvez seu programa tenha ocultado fluxos de dados com executáveis.

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

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

c:> type program:argument > output
    
por 09.09.2011 / 21:47