У меня есть небольшая программа, которая разработана как Win32 GUI. По умолчанию он не открывает cmd, однако выводит некоторые важные данные в стандартный вывод. Я не хочу получать эти данные, поэтому я попытался выполнить их непосредственно из cmd.

Когда я запускаю программу из cmd, она мгновенно освобождает консоль, и я снова могу что-то набрать. Хотя я пытался сделать Program.exe | cat (у меня установлен Cygwin), и он работал отлично.

Теперь единственная проблема в том, что программа не может изменить положение курсора, цвет текста и так далее. Я знаю, что они изменены так:

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

Есть ли способ использовать командную строку с этой программой? Как я уже сказал, вывод по трубопроводу не удовлетворит меня, пока не допустит изменений. Я не знаю о побочных программах, лончерах, даже патчах asm было бы здорово.

Заранее спасибо.

2 ответа2

0

Используйте команду pause в скрипте.

Program.exe
pause

Или попробуйте запустить cmd с аргументом /k :

cmd.exe /K
0

Как только вы захотите получить выходные данные в статический (текстовый) файл, в этом файле нет способа «переместить курсор», но вместо этого вы увидите esc-последовательности или просто двоичные данные.

Как и догадаться: попробуйте Program.exe > c:\mytest.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .