2013-12-14 8 views
7

Esiste un modo per acquisire desktop con node.js e non una scheda del browser?Come acquisire lo schermo del desktop dell'host del computer su cui è in esecuzione utilizzando node.js

Ho cercato molto ma non ne ho trovato.

Quello che voglio è utilizzare node.js per creare un'applicazione desktop.

+0

So quel nodo specializzata per il web ma potrebbe anche essere usato per creare applicazioni console – user12cdhbw7

+0

Sì, ma co Le applicazioni nsole non hanno nulla a che fare con la GUI, non sarete in grado di creare applicazioni desktop GUI adeguate con un linguaggio di programmazione serviceside. – YesMan85

+0

Non sto cercando una GUI, le applicazioni desktop possono avere una GUI o non possono, quindi la console è sufficiente – user12cdhbw7

risposta

0

forse si dovrebbe riformulare la tua domanda come segue:

Come catturare schermata del desktop del computer host in cui è in esecuzione su richiesta del cliente http e inviare di nuovo l'immagine come risposta

Se questo è ciò che in realtà vuoi dire, puoi write your own add-on module usando il compilatore nativo. Per riferimento, vedere this post).

3

Perché non chiami semplicemente un programma esterno?

Ad esempio, è possibile chiamare l'importazione:

$ import -window root screenshot.png 

Il codice:

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

come salvare screenshot.png – user12cdhbw7

+1

è già stato salvato quando si esegue il comando –

+0

L'ho provato e non c'è niente salvato – user12cdhbw7

7

È possibile utilizzare

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

e

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

per creare schermate dello schermo dell'utente corrente che esegue l'applicazione nodejs. Qualcosa di simile (è completo expressJS esempio):

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); 

Ma questo è l'approccio piuttosto lento.

+0

Mostra come eseguire l'approccio rapido in tempo reale e renderlo disponibile per VLC o Google Chrome da ri-acquisire. – YumYumYum

+0

può essere abbastanza non banale - richiede ffmpeg per generare feed in tempo reale e server icecast per la trasmissione - meglio chiedergli nella domanda separata – vodolaz095

0

Per i nuovi arrivati,

Esiste un pacchetto NPM chiamato desktop screenshot esattamente per lo stesso scopo.

Here è

È possibile trovare un addon in cui viene presa la screenshot e salvato a qualsiasi path.User definito utente può anche specificare un intervallo di tempo per la cattura screenshot.Here

1

risoluzione completa

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

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

Ridimensiona per 400px di larghezza, Mantieni proporzioni

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"); 
}); 

Ridimensiona per 400x300, impostare la qualità JPG al 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"); 
}); 
+0

come specificare la cartella in cui voglio salvare lo screenshot in –

Problemi correlati