如何使用node.js捕获正在运行的计算机主机的桌面屏幕

有没有这样的方式来捕获桌面与node.js不是浏览器选项卡?

我搜查了很多,但我没有find任何。

我想要的是使用node.js来构build桌面应用程序。

您可以使用

http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback

https://en.wikipedia.org/wiki/Scrot

制作当前用户运行nodejs应用程序的屏幕截图。 像这样的东西(这是完整的例子):

var express = require('express'), childProcess = require('child_process'), app = express(); app.get('/screenshot.png', function(request,response){ childProcess.exec('scrot screenshot.png', function(err){ if(err1) { response.send(503,'Error creating image!'); } else { response.sendfile('screenshot.png') } }); }); app.listen(3000); 

但这是相当缓慢的做法。

你为什么不直接调用外部程序?

例如,你可以调用import:

 $ import -window root screenshot.png 

代码:

 var exec = require('child_process').exec; exec('import -window root screenshot.png', function (error, stdout, stderr){ // now you have the screenshot }); 

全分辨率

 var screenshot = require('desktop-screenshot'); screenshot("screenshot.png", function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); }); 

调整到400px宽,保持长宽比

 var screenshot = require('desktop-screenshot'); screenshot("screenshot.png", {width: 400}, function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); }); 

调整到400×300,将JPG质量设置为60%

 var screenshot = require('desktop-screenshot'); screenshot("screenshot.jpg", {width: 400, height: 300, quality: 60}, function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); }); 

也许你应该改变你的问题如下:

如何捕获运行在http客户端请求上的计算机主机的桌面屏幕,并作为响应发回图像

如果这就是你的意思,你可以使用本地编译器编写自己的附加模块 。 作为参考,看到这个职位 )。

对于新来者,

有一个叫做desktop-screenshot的npm包,用于完全相同的目的。

在这里

你可以find一个插件,在其中截屏并保存到任何用户定义的path。用户也可以指定一个截图截图的时间间隔。 这里

Interesting Posts