如何在Node.js中截取窗口截图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Node.js中截取窗口截图?相关的知识,希望对你有一定的参考价值。

我正在研究找到一种使用Node.js截取窗口截图的方法,我正在尝试使用node-ffi进行此操作,但我不知道如何...我一次我被困在这里:

var ffi = require('ffi');

var user32 = new ffi.Library("user32", {
      FindWindowA: [ 'uint32' , [ 'string', 'string' ]]
    , PrintWindow: [ 'int32'  , [ 'int32', 'string', 'int32' ]]
});

var IMG;
var windowHandle = user32.FindWindowA(null, "Calculator");
var printWin = user32.PrintWindow(windowHandle, IMG, 0);

console.log(printWin);
console.log(IMG);

结果:

$ node get-print.js
1
undefined

EDITED

我在C ++中找到了以下工作代码

Bitmap bm = new Bitmap(1024, 768);
Graphics g = Graphics.FromImage(bm);
IntPtr hdc = g.GetHdc();
Form1.PrintWindow(this.Handle, hdc, 0);
g.ReleaseHdc(hdc);
g.Flush();
g.Dispose();
this.pictureBox1.Image = bm;

现在我需要在NodeJ上做这个,

有人可以帮帮我吗?

答案

您可以使用名为“desktop-screenshot”的NPM包。它使用起来非常简单。

NPM示例:

var screenshot = require('desktop-screenshot');

screenshot("screenshot.png", function(error, complete) {
    if(error)
        console.log("Screenshot failed", error);
    else
        console.log("Screenshot succeeded");
});

https://www.npmjs.com/package/desktop-screenshot

以上是关于如何在Node.js中截取窗口截图?的主要内容,如果未能解决你的问题,请参考以下文章

当程序成为前台窗口时,我的代码会截取程序的屏幕截图。屏幕截图的时间出现了一个小问题

替代快速截取窗口的屏幕截图

在 QML 中截取特定项目的屏幕截图的方法是啥?

如何截取完整桌面Windows c#的屏幕截图[关闭]

html网页中图片横向滚动

VC++截图编程:如何能完整地截图?要求是能够截取层级窗口的方法。