1. ホーム
  2. javascript

[解決済み] JavaScriptでウェブページのスクリーンショットを撮る?

2022-05-01 12:23:55

質問

JavaScriptでウェブページのスクリーンショットを撮り、それをサーバーに送信することは可能でしょうか?

ブラウザのセキュリティの問題などは、実装としてあまり気にしていません。 HTA . しかし、それは可能なのでしょうか?

どうすれば解決するの?

あるHTAで、ActiveXコントロールを使って、このようなことをしました。スクリーンショットを撮るためにVB6でコントロールを構築するのはとても簡単でした。SendKeysはPrintScreenができないので、keybd_event APIコールを使用しなければなりませんでした。以下はそのコードです。

Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const CaptWindow = 2

Public Sub ScreenGrab()
   keybd_event &H12, 0, 0, 0
   keybd_event &H2C, CaptWindow, 0, 0
   keybd_event &H2C, CaptWindow, &H2, 0
   keybd_event &H12, 0, &H2, 0
End Sub

これでは、ウィンドウをクリップボードに取得するところまでしかできません。

スクリーンショットが必要なウィンドウが HTA の場合、XMLHTTPRequest を使用して DOM ノードをサーバーに送信し、サーバー側でスクリーンショットを作成する方法もあります。