У меня есть сценарий Perl, работающий в окнах, который отображается для экранирования очень длинных строк.
Я не хочу фиксировать свой консольный размер постоянно. Я просто хочу, чтобы это было большим в случае, если этот сценарий работает.
Существует ли способ определить размер консоли из сценария Perl, который работает в этом окне?
Вы можете установить размер консоли для работающей консоли с помощью команды mode
:
mode con lines=50 cols=200
Изменение будет сохраняться только до тех пор, пока окно консоли закрывается.
См. Win32 :: Console . В примере программы есть демонстрация изменения размера, которая работает на моем Windows XP SP3. Больше нигде не пробовал.
Кроме того, может быть проще использовать простой графический интерфейс, состоящий из текстового поля.
Вот адаптация testWindow
из примера скрипта:
use strict; use warnings;
use Win32::Console;
my $OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
my $IN = Win32::Console->new(STD_INPUT_HANDLE);
$IN->Mode(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT);
$OUT->Size(180, 200);
my ($maxx, $maxy) = $OUT->MaxWindow;
$OUT->Cls;
$OUT->Cursor(-1, -1, -1, 0);
$OUT->FillAttr($BG_YELLOW|$FG_BLUE, $maxy * $maxx, 0, 0);
$OUT->FillChar('X', $maxy*$maxx, 0, 0);
$OUT->Window(1, 0, 0, $maxx, $maxy);
while ($maxx>1 and $maxy>1) {
$maxx -= 5;
$maxy -= 5;
$OUT->Window(1, 0, 0, $maxx, $maxy);
sleep 1;
}
$OUT->Window(1, 0, 80, 50);
$OUT->Cls;