【问题标题】:How can I set the size of the cmd.exe window from my Perl program?如何从我的 Perl 程序中设置 cmd.exe 窗口的大小?
【发布时间】:2011-01-13 12:31:02
【问题描述】:

我有一个在 Windows 中运行的 Perl 脚本,它在屏幕上显示很长的行。

我不想永久修复我的控制台大小。我只是希望它变大,以防这个脚本正在运行。

有没有办法在这个窗口内运行的 Perl 脚本中定义控制台的大小?

【问题讨论】:

    标签: windows perl console cmd


    【解决方案1】:

    Win32::Consolesample program 有一个适用于我的 Windows XP SP3 的调整大小演示。我没有在其他地方尝试过。

    此外,使用仅由文本框组成的简单 GUI 可能会更容易。

    这是对示例脚本中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;
    

    【讨论】:

      【解决方案2】:

      您可以使用mode 命令设置正在运行的控制台的控制台大小:

      mode con lines=50 cols=200
      

      更改只会持续到控制台窗口关闭。

      【讨论】:

      • 太棒了!谢谢埃里克(-:
      • 但是...这也会影响缓冲区大小!使我的向上滚动条消失。如何单独设置缓冲区大小?毕竟,“右键-->属性-->布局”有四个参数,而不仅仅是两个。请建议...谢谢,罗尼
      • @Roni => 你可以通过增加行数来增加向上滚动条,试试几千个。
      • 您也可以输入modemode con 以获取有关可用设置的更多信息
      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多