Duvida Retorno de string de um .exe através de os-command

Discussão em 'Progress 4GL' iniciado por erickles, Julho 14, 2015.

  1. erickles

    erickles Membro Participativo

    Olá galera,

    Seguinte, es utilizo um arquivo .exe via os-command e no prompt ele me retorna uma string/resultado. Como eu faria para que eu consiga, no código progress, pegar este resultado e jogar em uma variável?
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Talvez assim funcione:

    Código:
    OS-COMMAND NO-WAIT DIR/w > C:\Temp\Temp.txt.
    
    OS-COMMAND NO-WAIT notepad C:\Temp\Temp.txt.
    
    Isto gerará um arquivo de saída C:\Temp\Temp.txt.

    Depois basta ler esse arquivo.

    Até onde sei, o OS-COMMAND não possui recurso de retornar valor diretamente, desta utilizamos um artifício presente no prompt do windows.

    Abraço

    Rafael
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Código mais detalhado:

    Código:
    DEF VAR Texto AS LONGCHAR.
    
    OS-COMMAND NO-WAIT DIR/? > C:\Temp\Texto.txt.
    
     COPY-LOB FROM FILE "C:\Temp\Texto.txt" TO Texto NO-CONVERT.
    
    MESSAGE STRING(Texto)
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
  4. erickles

    erickles Membro Participativo

    Entendi, uma pena não pegar o valor direto. Valeu!
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Substitua o NO-WAIT por SILENT, senão não dá tempo de preencher o arquivo TXT.
  6. jaisonantoniazzi

    jaisonantoniazzi Membro Ativo

    Bom dia pessoal, tudo bom?
    É só executar a API do Windows GETCOMMANDLINEA

    PROCEDURE GetCommandLineA EXTERNAL "KERNEL32.DLL":
    DEFINE RETURN PARAMETER ptr AS MEMPTR.
    END PROCEDURE.

    DEFINE VARIABLE comando AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ptr AS MEMPTR NO-UNDO.

    RUN GetCommandLineA (OUTPUT ptr).

    ASSIGN comando = GET-STRING(ptr,1).

    MESSAGE comando
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

Compartilhe esta Página