# encoding: ascii
# api: powershell
# title: Resize Console Window
# description: ##
# version: 0.1
# type: function
# author: William
# license: CC0
# x-poshcode-id: 874
# x-archived: 2013-08-28T20:58:53
# x-published: 2009-02-16T16:26:00
#
# Author : Roman Kuzmin
# Synopsis : Resize console window/buffer using arrow keys
# # ##
# function Size($w, $h)
# {
# New-Object System.Management.Automation.Host.Size($w, $h)
# }
# function resize()
# {
# Write-Host ‘[Arrows] resize [Esc] exit …’
# $ErrorActionPreference = ‘SilentlyContinue’
# for($ui = $Host.UI.RawUI;;) {
# $b = $ui.BufferSize
# $w = $ui.WindowSize
# switch($ui.ReadKey(6).VirtualKeyCode) {
# 37 {
# $w = Size ($w.width – 1) $w.height
# $ui.WindowSize = $w
# $ui.BufferSize = Size $w.width $b.height
# break
# }
# 39 {
# $w = Size ($w.width + 1) $w.height
# $ui.BufferSize = Size $w.width $b.height
# $ui.WindowSize = $w
# break
# }
# 38 {
# $ui.WindowSize = Size $w.width ($w.height – 1)
# break
# }
# 40 {
# $w = Size $w.width ($w.height + 1)
# if ($w.height -gt $b.height) {
# $ui.BufferSize = Size $b.width $w.height
# }
# $ui.WindowSize = $w
# break
# }
# 27 {
# return
# }
# }
# }
# }
#
##
## Author : Roman Kuzmin
## Synopsis : Resize console window/buffer using arrow keys
##
function Size($w, $h)
{
New-Object System.Management.Automation.Host.Size($w, $h)
}
function resize()
{
Write-Host '[Arrows] resize [Esc] exit ...'
$ErrorActionPreference = 'SilentlyContinue'
for($ui = $Host.UI.RawUI;;) {
$b = $ui.BufferSize
$w = $ui.WindowSize
switch($ui.ReadKey(6).VirtualKeyCode) {
37 {
$w = Size ($w.width - 1) $w.height
$ui.WindowSize = $w
$ui.BufferSize = Size $w.width $b.height
break
}
39 {
$w = Size ($w.width + 1) $w.height
$ui.BufferSize = Size $w.width $b.height
$ui.WindowSize = $w
break
}
38 {
$ui.WindowSize = Size $w.width ($w.height - 1)
break
}
40 {
$w = Size $w.width ($w.height + 1)
if ($w.height -gt $b.height) {
$ui.BufferSize = Size $b.width $w.height
}
$ui.WindowSize = $w
break
}
27 {
return
}
}
}
}