Как я могу установить размер окна cmd.exe из моей программы Perl? - PullRequest
8 голосов
/ 05 февраля 2010

У меня запущен Perl-скрипт в Windows, который отображает очень длинные строки.

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

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

Ответы [ 2 ]

4 голосов
/ 05 февраля 2010

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

mode con lines=50 cols=200

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

3 голосов
/ 05 февраля 2010

См. Win32 :: Консоль . Пример программы имеет демонстрацию изменения размера, которая работает на моем 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...