【Powershell】任意のアプリのウィンドウサイズ等を指定して起動する
前置き
GUIアプリケーションを実行すると、基本的には最後に閉じた状態で開きます。
ニッチな需要だと思いますが、例えばGUIアプリを利用したシェルスクリプトではウィンドウを隠したり、特定の条件のときだけアプリをフルサイズで開きたい、ということがあるかもしれません。
(ちなみに私は仕事中にそういうことがありました。)
そこで、その方法について記載します。
スクリプト記述
※注意
コンソールのコマンド実行を説明するときは、習慣的に$
がつけられることが多いです。(例えば$dir
と書かれていたらコンソールでdir
と打つ)
powershellでは変数を定義するときに、$var
のように書くとvar
という名前の変数を定義できます。
なので、ここで紹介するスクリプトは$
を含めて実行してください。
それでは、いきなりですがシェルはこちら
$p =New-Object -TypeName System.Diagnostics.ProcessStartInfo $p.FileName ="{プログラム名}" $p.WindowStyle =[System.Diagnostics.ProcessWindowStyle]::{設定値} [System.Diagnostics.Process]::Start($p)
シェル自体の説明は割愛します。
{プログラム名}には任意のファイルを指定できます。
例えば$env:LOCALAPPDATA\Programs\Microsoft VS Code\bin\code
や、パスが通っていればnotepad
のように名前だけの指定もできます。
また、hoge.txt
のように実行ファイル以外を指定した場合は、その拡張子に紐づいたアプリが実行されます。(.txt
だとnotepad.exe等){設定値}には
System.Diagnostics.ProcessWindowStyle
型の値を指定できます。
具体的には以下のいずれかを指定できます。
Hidden | Maximized | Minimized | Normal |
---|---|---|---|
非表示 | 最大化 | 最小化 | 通常(最後に閉じたときの状態) |
動作確認
試しにメモ帳をサイズ最大で起動してみましょう
PS C:\> $p =New-Object -TypeName System.Diagnostics.ProcessStartInfo >> $p.FileName ="notepad" >> $p.WindowStyle =[System.Diagnostics.ProcessWindowStyle]::Maximized >> [System.Diagnostics.Process]::Start($p) Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 28 5 1032 2188 0.02 1132 1 notepad
大丈夫そうですね。
読んでいただきありがとうございました。