如何从javascript获取整个客户端机器的屏幕截图,而不仅仅是web浏览器或网页

如何从javascript获取整个客户端机器的屏幕截图,而不仅仅是web浏览器或网页,javascript,screenshot,screen-capture,Javascript,Screenshot,Screen Capture,我想把截图捕捉到一个图像,而不是视频。我找到了这样做的方法,但他们要么捕获当前网页,要么从整个屏幕重新编码视频。我找到了一个记录屏幕。这与WebRTC所做的类似。我的要求是从用纯javascript编写的web应用程序中以编程方式获取整个屏幕的图像。我有什么办法可以做吗? 感谢通过Media Capture and Streams API获得的MediaStream,您可以创建一个实例并调用其方法来生成一个可以在上绘制的图像位图 const stream=await navigator.medi

我想把截图捕捉到一个图像,而不是视频。我找到了这样做的方法,但他们要么捕获当前网页,要么从整个屏幕重新编码视频。我找到了一个记录屏幕。这与WebRTC所做的类似。我的要求是从用纯javascript编写的web应用程序中以编程方式获取整个屏幕的图像。我有什么办法可以做吗?
感谢通过Media Capture and Streams API获得的MediaStream,您可以创建一个实例并调用其方法来生成一个可以在
上绘制的图像位图

const stream=await navigator.mediaDevices.getDisplayMedia();
const track=stream.getVideoTracks()[0];
常量捕获=新图像捕获(轨迹);
//当你需要静止图像时
const bitmap=wait capture.grabFrame();
//如果你想要一个Blob版本
const canvas=document.createElement(“canvas”);
canvas.width=bitmap.width;
canvas.height=bitmap.height;
canvas.getContext(“位图渲染器”).transferFromImageBitmap(位图);
const blob=wait new Promise((res)=>canvas.toBlob(res));
现在,我应该注意到,目前只有基于Chromium的浏览器才能访问此理想路径。
对于其他浏览器,您需要将HTMLVideoElement的
srcObject
设置为MediaStream,并在2D上下文中将该HTMLVideoElement设置为
drawImage