Net-VNC
view release on metacpan or search on metacpan
NAME
Net::VNC - A simple VNC client
SYNOPSIS
use Net::VNC;
my $vnc = Net::VNC->new({hostname => $hostname, password => $password});
$vnc->depth(24);
$vnc->login;
print $vnc->name . ": " . $vnc->width . ' x ' . $vnc->height . "\n";
my $image = $vnc->capture;
$image->save("out.png");
DESCRIPTION
Virtual Network Computing (VNC) is a desktop sharing system which uses
the RFB (Remote FrameBuffer) protocol to remotely control another
computer. This module acts as a VNC client and communicates to a VNC
server using the RFB protocol, allowing you to capture the screen of the
remote computer.
This module dies upon connection errors (with a timeout of 15 seconds)
and protocol errors.
This implementation is based largely on the RFB Protocol Specification,
<http://www.realvnc.com/docs/rfbproto.pdf>. That document has an error
in the DES encryption description, which is clarified via
<http://www.vidarholen.net/contents/junk/vnc.html>.
METHODS
new
The constructor. Given a hostname and a password returns a Net::VNC
object:
my $vnc = Net::VNC->new({hostname => $hostname, password => $password});
Optionally, you can also specify a port, which defaults to 5900. For ARD
(Apple Remote Desktop) authentication you must also specify a username.
You must also install Crypt::GCrypt::MPI and Crypt::Random.
login
Logs into the remote computer:
$vnc->login;
name
Returns the name of the remote computer:
print $vnc->name . ": " . $vnc->width . ' x ' . $vnc->height . "\n";
width
Returns the width of the remote screen:
print $vnc->name . ": " . $vnc->width . ' x ' . $vnc->height . "\n";
height
Returns the height of the remote screen:
print $vnc->name . ": " . $vnc->width . ' x ' . $vnc->height . "\n";
capture
Captures the screen of the remote computer, returning an Image::Imlib2
object:
my $image = $vnc->capture;
$image->save("out.png");
You may call capture() multiple times. Each time, the $image buffer is
overwritten with the updated screen. So, to create a series of ten
screen shots:
for my $n (1..10) {
my $filename = sprintf 'snapshot%02d.png', $n++;
$vnc->capture()->save($filename);
print "Wrote $filename\n";
}
( run in 1.177 second using v1.01-cache-2.11-cpan-39bf76dae61 )