マイナビニュースマイナビ

ウインドウを配置するスクリプト - 実践編

【連載】

PowerShell Core入門 - 基本コマンドの使い方

【第168回】ウインドウを配置するスクリプト - 実践編

[2021/10/01 08:00]後藤大地 ブックマーク ブックマーク

前回までの解説で、ウインドウを指定した場所に指定したサイズで配置できるようにした。今回は、そのスクリプトを使って、アプリケーションの配置を自動で行うスクリプトを作成する。

今回やることは簡単だ。配置したいアプリケーションを起動し、起動したアプリケーションを前回までに作成したPowerShellスクリプトを使って配置するだけである。これを繰り返す処理をスクリプトにまとめれば、完成だ。

アプリケーションの起動と配置を行うスクリプト

先に、完成したスクリプト「deploy_001.ps1」を掲載しておく。

#!/usr/bin/env pwsh

#====================================================================
# アプリケーション起動とデプロイ
#====================================================================

# マイナビニュース 企業IT 新着記事一覧
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url

Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800

# マイナビニュース IT Search+
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/itsearch/'
& $cmd --new-window $url

Sleep 1
window_deploy "*" "TECH+.*" 100 800 1200 600

# Windows Terminal
wt
Sleep 1
window_deploy WindowsTerminal ".*" -50 0 1200 1100

# メモ帳
notepad
Sleep 1
window_deploy notepad ".*" -50 -40 1200 300

実行例も見ておこう。次のように何もない状態で、作成したスクリプトを実行する。

スクリプトの実行前

実行するとアプリケーションが起動し、指定した場所に配置されて、最終的に次のような画面になる。

スクリプトの実行後

仕事をする際、”好みのアプリケーション配置”は何となく決まってくるものだ。これをある程度数値化してスクリプトにまとめてしまえば、自動的に用意できるようになる。毎回毎回、手動で起動して配置するのと、スクリプトでサッと準備できるのとでは、時短につながることはもちろん、爽快さが違うというものだ。

スクリプトの説明

このスクリプトは、次の処理を繰り返しているだけだ。

  1. アプリケーションを起動
  2. 1秒待機
  3. 起動したアプリケーションを再配置


例えば、最初の処理は次のようになっている。

# マイナビニュース 企業IT 新着記事一覧
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url

Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800

このうち、アプリケーションを起動しているのは次の部分だ。

$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url

1行が長くなってしまうのでこのように書いているが、基本的には次のように実行しているのと同じだ。

& 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' --new-window 'https://news.mynavi.jp/list/headline/business/enterprise/'

「&」から記述された行はその後の文字列をコマンドの起動として解釈する。上記の場合、Microsoft Edgeが起動するようになる。「—new-window」オプションは「新規ウインドウで起動する」という指定で、さらにURLが指定してあるので、指定したURLがオープンされる。

コマンドラインからアプリケーションを起動する方法はアプリケーションごとにさまざまなので、この部分は自分で調べて使えるようになるしかない。

そしてアプリケーションを起動したら、次のように1秒間待機してから次の処理へ移っている。「Sleep 1」が待機部分だ。Microsoft Edgeを起動しても、起動されたEdgeが指定されたURLを開くまでには時間がかかる。指定されたURLを開かないとEdgeのウインドウタイトルが設定されない。ウインドウタイトルが設定されないと、前回までに作成したスクリプトでEdgeを特定することができない。このため、Edgeがページの読み込みを終えるまでの時間として1秒間待機している。

Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800

ページの読み込みが終わった後、「window_deploy “*” “新着記事.*” 100 0 1200 800」で起動したEdgeのサイズ変更と再配置を行っている。これで最初のアプリケーションの起動と再配置が完了だ。先ほどのスクリプトは、この処理を配置したいアプリケーション分だけ繰り返し実行しているだけである。

待機時間は使っているPCの性能やネットワークの速度、状態などによって左右される。読み込みが完了するまでもっと時間がかかるなら時間を長めに設定すればよいし、早く完了するなら「Sleep 0.1」のように短い時間を指定すればよい。

シンプルだが効果的なスクリプト

前回までに作成した「window_deploy.ps1」も、今回取り上げたdeploy_001.ps1も、それほど複雑なPowerShellスクリプトではない。必要最小限の機能だけを実装した短いスクリプトだが、それでもここまでの操作ができる。

人がPCで繰り返し行っている操作には、今回のように簡単に自動化できるものがある。一つ一つのスクリプト化で得られる短縮時間は数秒、数十秒かもしれないが、それが毎日毎日、そして1日のなかで何回も発生するとなると、効率化が効いてくる。

PowerShellスクリプトは、Windowsの操作を高速化するのに役立つ多くの機能を提供してくれる。少しずつでもPowerShellの活用に取り組むことは、Windowsと付き合っていく上で意義があるのである。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で TECH+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Slackで始める新しいオフィス様式
Google Workspaceをビジネスで活用する
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
次世代YouTubeクリエイターの成長戦略
IoTでできることを見つけるための発想トレーニング
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
マイクロサービス時代に活きるフレームワーク Spring WebFlux入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る