私は現在、BlueStacks のハードウェア アクセラレーション ウィンドウからスクリーンショットをキャプチャする小さなスクリプトに取り組んでいます。
問題は、ウィンドウをハードウェア アクセラレーションする必要があるように見えるため、スクリーン キャプチャで黒い四角形が保存されることです。
私はスクリプト作成に AutoHotkey を使用しており、GDI+ にアクセスするために GDIp ライブラリを追加しました。
問題は、ソフトウェアがフレームを GPU に直接プッシュするため、GDIp が PrintWindow を使用してデータを取得できないことだと思われますが、このフレームをキャプチャする方法が必要です。
私のスクリプト:
#SingleInstance, Force
#NoEnv
SetBatchLines, -1
OnExit, Exit
#Include Gdip.ahk
#Include GDIpHelper.ahk
SetUpGDIP()
WinGet, hwnd, ID, BlueStacks App Player
pBitmap := Gdip_BitmapFromHWND(hwnd)
Gdip_SaveBitmapToFile(pBitmap, "TestOutput.png", 100)
Gdip_DisposeImage(pBitmap)
return
キャプチャする実際の画面:

私のスクリプトによる実際のファイル出力:

おそらくフレームバッファにアクセスする方法や、どこに行くべきかについてのアイデアはありますか? それは、これまで誰もする必要のなかったものではありません。