このページの本文へ

前へ 1 2 次へ

Windows Info 第329回

Windowsでコマンドラインからウィンドウ部分だけを画面キャプチャーする

2022年05月29日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

今回のプログラムの解説

 今回紹介したプログラムだが、先頭部分は、Win32APIの呼出をC#のプログラムで定義している。PowerShellでは、こうやって文字列としてC#のプログラムを入れて、それを21行目にある「Add-Type $src」のようにAdd-Typeコマンドで登録すると、C#プログラムをコンパイルして登録してくれる。回りの「try { ~ } catch {}」は、エラーのトラップである。

 ここでは、2つのWin32APIを登録している。

●GetForegroundWindow function
 https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getforegroundwindow
●DwmGetWindowAttribute function
 https://docs.microsoft.com/ja-jp/windows/win32/api/dwmapi/nf-dwmapi-dwmgetwindowattribute

 「GetForegroundWindow」は、カレントウィンドウのウィンドウハンドルを返す関数だ。これに対して「DwmGetWindowAttribute」は、ウィンドウの左上と右下の座標を返すための関数。以前のWindowsでは、ウィンドウの座標は「GetWindowRect」で求めるものだったが、Windows 10/11では、この関数はウィンドウ周囲の影の部分を含んだ座標を返す。なので、これでキャプチャーしてしまうと、ウィンドウの外側まで入る。

 「DwmGetWindowAttribute」は、さまざまな情報を返す関数なのだが、そのうちの1つに影の部分を含まないウィンドウの座標を返すという機能がある。ただし、呼びだし方が面倒なので、ここでは、「GetWRect」というメソッドを定義し、PowerShellからは、これを呼び出す。具体的には、

[WindowRect]::GetWRect($hWnd)

とする。

 PowerShellの「Get-WindowCaptureByHandle」関数(27行目)で、この関数を使い、ウィンドウハンドルから、ウィンドウの左上、右上の座標を得て、「Get-CaptureRect」関数(22行目)を呼び出している。

 「Get-CaptureRect」関数は、前々回に解説した範囲を指定してデスクトップの一部をキャプチャーする関数だ。その範囲としてウィンドウの範囲を入れてやることで、ウィンドウだけの画像を得ることができる。

 「GetForegroundWindow」は、カレントウィンドウのウィンドウハンドルを返す。具体的には、

[WindowRect]::GetForegroundWindow()

とする(リスト37行目)。ウィンドウハンドルが得られれば、「Get-WindowCaptureByHandle」関数を使って、ウィンドウのキャプチャーができる。

 サンプルの関数、「Save-CurrentWindowCapture」は、これを利用したもの。キャプチャーから保存、ビットマップの後始末までの一連の手順を記述してある。

 やむを得ず、今回はプログラムの話になってしまったが、ここで定義した関数などを使うことで、デスクトップ内の特定の範囲やウィンドウハンドルで指定したウィンドウのキャプチャーが可能になる。もともと、このプログラムは、デバッグ用に画面を撮影し続けるために作成したもので、エラー処理などまったくしていない。実用にはほど遠いので、必要に応じて書き換えて使っていただきたい。また、ご自身のリスクで利用してほしい。何かあっても筆者も編集部も責任を取ることはできない旨、理解されたい。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,290
2
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,249
3
【Amazon.co.jp限定】Meta Quest 3S(128GB)購入で『Gorilla Tag』ゲームを無料プレゼント|VRヘッドセット|メモリが33%増加 | 2倍のグラフィック処理性能 |ワイヤレスのVR体験
【Amazon.co.jp限定】Meta Quest 3S(128GB)購入で『Gorilla Tag』ゲームを無料プレゼント|VRヘッドセット|メモリが33%増加 | 2倍のグラフィック処理性能 |ワイヤレスのVR体験
¥50,490
4
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
¥1,980
5
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
¥20,800
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,270
7
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥640
8
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
9
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック
¥18,980
10
Anker Nano Charger (70W, 3 Ports) ブラック【 PD対応/PSE技術基準適合/折りたたみ式プラグ】iPhone 17 / 16 / 15シリーズ / Air MacBook Windows PC iPad Galaxy Android スマートフォン ノートPC 各種 その他機器対応
Anker Nano Charger (70W, 3 Ports) ブラック【 PD対応/PSE技術基準適合/折りたたみ式プラグ】iPhone 17 / 16 / 15シリーズ / Air MacBook Windows PC iPad Galaxy Android スマートフォン ノートPC 各種 その他機器対応
¥3,490

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン