■99474 |
Re[2]: PrintWindowでChromeウインドウを取得する |
□投稿者/ 魔界の仮面弁士 -(2022/04/15(Fri) 13:40:07)
| 2022/04/15(Fri) 13:53:51 編集(投稿者)
■No99472 (魔界の仮面弁士) に追記 > ■No99466 (ぜん さん) に返信 >>また、DWM Thumbnail APIでもできそうなことが書かれてあるのですが >>これはどうやって使えば良いですか? >>検索してもいまいち使い方が分かりませんでした。 > そうですか? 使い方の説明なら、すぐに出てきましたよ。 > 使う関数もそう多くは無いですし。
すみません。質問の意図を勘違いしていました。
サムネイルを取得したいわけではなく、あくまでも「スクリーンショット」が目的なので、 恐らくはそれを画像として保存する必要があるのですよね。 (クリップボードに送るのか、ファイルとして保持するのかはさておき)
DWM でサムネイルを得る方法の場合、撮影対象のアプリは背面表示でも構いませんが、 撮影結果は HDC でなく、トップレベルウィンドウの HWND を指定する方法であるため、 そのサムネイルを、画像として直接保存する手段が無さそうですね…。
二次転写でも構わないのであれば、Graphics.CopyFromScreen あるいは BitBlt で、 サムネイルを再撮影するという手が一応あります。 (二次転写ゆえ、サムネイルを表示中のウィンドウを可視状態にしておく必要あり) https://dobon.net/vb/dotnet/graphics/screencapture.html
(1) 一瞬だけ前面に持ってきてから撮影する案 (2) PrintWindow(hwnd, hdc, PW_RENDERFULLCONTENT) 案 (3) Selenium 案(WebDriver の ITakesScreenshot インターフェイス) (4) DWM Thumbnail 後に二次転写案 |
|