Mantenha o programa em cmd

0

Eu tenho um pequeno programa que é projetado como Win32 GUI. Ele não abre o cmd por padrão, no entanto, ele imprime alguns dados importantes para o stdout. Eu não quero obter esses dados, então eu tentei executá-lo diretamente do cmd.

Quando eu executo o programa a partir do cmd, ele instantaneamente libera o console e eu posso digitar algo novamente. Embora, eu tentei fazer Program.exe | cat (eu tenho cygwin instalado) e funcionou perfeitamente.

Agora, o único problema é que o programa não pode alterar a posição do cursor, a cor do texto e assim por diante. Eu sei que eles mudaram assim:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), fg + bg * 16);

Existe alguma maneira de usar a linha de comando com este programa? Como eu disse, a saída da tubulação não me satisfará até que permita modificações. Não estou ciente de programas paralelos, lançadores, nem asm patches seria ótimo.

Obrigado antecipadamente.

    
por noisy cat 17.06.2014 / 20:17

2 respostas

0

Use o comando pause em um script.

Program.exe
pause

Ou tente executar cmd com o argumento /k :

cmd.exe /K
    
por 17.06.2014 / 20:20
0

Assim que você quiser pegar a saída em um arquivo estático (texto), então não há como 'mover o cursor' naquele arquivo, mas você verá as sequências esc ou apenas dados binários.

Assim como acho: tente Program.exe > c:\mytest.txt

    
por 17.06.2014 / 20:46