記事の素材として、よくウィンドウのスクリーンショットを取得しますが、出来上がった画像を後から任意のサイズに加工しています。
事前にウィンドウサイズを指定してスクリーンショットを取れば良いのではと思い立ち、ウィンドウサイズを変更するスクリプトを書いてみました。
スクリプト
<#
Google Chromeのウィンドウサイズを800x600にセットするスクリプト
(注)フルスクリーンの場合ウィンドウモードに変更してから実行のこと
#>
# アプリケーション名
$name = "chrome"
# X座標
$x = 0
# Y座標
$y = 0
# 幅
$widht = 800
# 高さ
$height = 600
# C#
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Win32Api {
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
}
"@
Get-Process -Name $name | ? { $_.MainWindowTitle -ne "" } | % {
[Win32Api]::MoveWindow($_.MainWindowHandle, $x, $y, $widht, $height, $true)
} | Out-Null
あとがき
$nameにアプリケーション名をセットしてください。(デフォルトはグーグルクローム)
$x,$yで座標、$height,$widhtで高さと幅をセットします。
肝となるウィンドウサイズの変更はC#で書いたWindows APIのMoveWindow関数の仕事となります。
コメント