Как я могу установить размер окна cmd.exe из моей программы Perl?

У меня есть сценарий Perl, работающий в окнах, который отображается для экранирования очень длинных строк.

Я не хочу фиксировать свой консольный размер постоянно. Я просто хочу, чтобы это было большим в случае, если этот сценарий работает.

Существует ли способ определить размер консоли из сценария Perl, который работает в этом окне?

8
задан Sinan Ünür 5 February 2010 в 13:55
поделиться

2 ответа

Вы можете установить размер консоли для работающей консоли с помощью команды mode :

mode con lines=50 cols=200

Изменение будет сохраняться только до тех пор, пока окно консоли закрывается.

4
ответ дан 5 December 2019 в 21:19
поделиться

См. 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;
3
ответ дан 5 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: