Дож писал(а):Я рад, что вы не отрицаете моего утверждения и согласны с тем, что из нормального и костыльного решения задачи выбрали костыльный. Странно при этом, что пеняете на винду, а не на свой подход.
Советом вашим, разумеется, не воспользуюсь.
Нет, нормального решения в костыльной винде не оставлено. Если вы его там видите, так это галлюционации и склонность доверять рекламе.
Добавлено спустя 11 минут 20 секунд:
Снег Север писал(а):Сквозняк, я не понимаю на что вы жалуетесь. Вы написали консольное приложение и у него вылезает консоль. А как может быть еще?
Вы бы еще пожаловались, что в в дождь с неба вода капает...
Кстати, элементарно гуглится пример для делфи, как перенаправить консольный вывод другой программы, запускаемой из приложения, в какой-нибудь StringList. Я сам таким пользовался, когда мне надо было перехватывать такие сообщения от ffmpeg.
А в линуксе всё работает и без такой лажи, там только отрубальщик для лога нужен:
- Код: Выделить всё
{$GOTO ON}
{$mode fpc}
{$R+}
//Программа для оперативного слежения
//за размером файла лога ~/.xsession-errors и оперативного
//уменьшения размера занимаемого им пространства
uses
sysutils,unix;
var
F: file;
q64: int64;
flag2: longint;
Z5: ansistring;
label
1;
begin
writeln('Программа для оперативного слежения '+
'за размером файла лога ~/.xsession-errors и оперативного '+
'уменьшения размера занимаемого им пространства');
flag2:=1000;
Z5:=SysUtils.GetEnvironmentVariable('HOME');
1:
system.Assign(F, Z5+'/.xsession-errors');
reset(F,1);
q64:=FileSize(F);
//writeln(q64);
if q64>200000000 then begin
system.seek(F,50000);
system.Truncate(F)
end;
if q64>400000000000 then begin
if flag2=1000 then fpsystem('konsole -e laza_konfiga.sh');
flag2:=0;
end;
system.close(F);
sleep(30000);
goto 1;
end.
Ну так и в винде какие-то нагугленные команды вводят чтобы сообщениями об ошибках бинарная утилита не засиралась. В маздайке специально поломаны естественные инструменты чтобы вынудить народ использовать их непотребство и писать ни с чем не совместимый код.
Перенаправление консольного выхлопа даёт удивительные результаты! Можно перенаправить в нулевое устройство вместе с консольным текстом ещё до кучи и звук издаваемый приложением. Заранее не знаешь, что ещё перенаправится. А оно такое всегда надо? Потому, самое лучшее решение это скрыть консоль и пусть туда пишется. Пока искал это решение наткнулся на такой вариант: чистить строчки из консоли чтобы та не появлялась. Все строки что в неё помещаются. Вот где жесть.