我正在进行一项研究,以找到一种使用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);
Run Code Online (Sandbox Code Playgroud)
结果:
$ node get-print.js
1
undefined
Run Code Online (Sandbox Code Playgroud)
已编辑
我在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;
Run Code Online (Sandbox Code Playgroud)
现在我需要在NodeJ上执行此操作
有人可以帮助我吗?
我尝试从 Github 下载 7zip 文件,但没有成功,代码如下:
var fs = require('fs');
var https = require('https');
options = {
host : "github.com",
port : 443,
path : "/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z",
method : 'GET',
rejectUnauthorized : false,
requestCert : true,
agent : false
};
var file = fs.createWriteStream("installer.7z");
var request = https.get(options, function(response){
response.pipe(file);
file.on("finish", function(){
file.close();
});
});
request.end();
request.on('error', function(err){
throw (err);
});
Run Code Online (Sandbox Code Playgroud)
此代码不会从 Github 下载文件,但如果我更改下载 Notepad++ 的选项:
options = {
host : "notepad-plus-plus.org",
port : 443,
path : "/repository/6.x/6.8/npp.6.8.bin.7z",
method : 'GET',
rejectUnauthorized …Run Code Online (Sandbox Code Playgroud)