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\AGS
chave 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\command
aponta 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