All Projects → shinyhut → vernacular-vnc

shinyhut / vernacular-vnc

Licence: MIT license
A pure Java VNC client library

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to vernacular-vnc

RabbitRemoteControl
Remote control. Support VNC, RDP, Terminal, SSH, TELNET etc
Stars: ✭ 82 (+49.09%)
Mutual labels:  remote-control, remote-desktop, vnc
avnc
VNC Client for Android
Stars: ✭ 207 (+276.36%)
Mutual labels:  vnc-client, remote-desktop, vnc
Aspia
Remote desktop and file transfer tool.
Stars: ✭ 784 (+1325.45%)
Mutual labels:  remote-control, remote-desktop
Rmtsvc
A web-based remote desktop & control service for Windows.
Stars: ✭ 47 (-14.55%)
Mutual labels:  remote-control, remote-desktop
DcRat
A simple remote tool in C#.
Stars: ✭ 709 (+1189.09%)
Mutual labels:  remote-control, remote-desktop
VNCPwn
VNC pentest tool with bruteforce and ducky script execution features
Stars: ✭ 21 (-61.82%)
Mutual labels:  vnc-client, vnc
Quasar
Remote Administration Tool for Windows
Stars: ✭ 4,897 (+8803.64%)
Mutual labels:  remote-control, remote-desktop
Remmina
Mirror of https://gitlab.com/Remmina/Remmina The GTK+ Remmina Remote Desktop Client
Stars: ✭ 1,705 (+3000%)
Mutual labels:  remote-control, vnc
CatVision-io-SDK-Android
Use CatVision.io SDK to add screen sharing of your Android application.
Stars: ✭ 16 (-70.91%)
Mutual labels:  remote-control, vnc
Tacticalrmm
A remote monitoring & management tool, built with Django, Vue and Go.
Stars: ✭ 231 (+320%)
Mutual labels:  remote-control, remote-desktop
Vanillarat
VanillaRat is an advanced remote administration tool completely coded in C# for Windows.
Stars: ✭ 192 (+249.09%)
Mutual labels:  remote-control, remote-desktop
winagent
Windows agent for Tactical RMM
Stars: ✭ 20 (-63.64%)
Mutual labels:  remote-control, remote-desktop
UltraVNC
UltraVNC Server and UltraVNC Viewer | Official repository: https://github.com/ultravnc/UltraVNC
Stars: ✭ 400 (+627.27%)
Mutual labels:  vnc-client, vnc
iCtrl
UofT Engineering Lab Remote
Stars: ✭ 91 (+65.45%)
Mutual labels:  remote-control, vnc
rustdesk-server
RustDesk Server Program
Stars: ✭ 3,314 (+5925.45%)
Mutual labels:  remote-control, remote-desktop
neko
A self hosted virtual browser that runs in docker and uses WebRTC.
Stars: ✭ 2,266 (+4020%)
Mutual labels:  remote-control, remote-desktop
Ip Kvm Interface
DIY IP-KVM for Remote Desktop Access
Stars: ✭ 62 (+12.73%)
Mutual labels:  remote-control, vnc
RemoteSupportTool
an easy single click solution for remote maintenance
Stars: ✭ 74 (+34.55%)
Mutual labels:  remote-control, remote-desktop
Neko
A self hosted virtual browser (rabb.it clone) that runs in docker.
Stars: ✭ 1,957 (+3458.18%)
Mutual labels:  remote-control, remote-desktop
docker-chromium
Docker container with Chromium desktop and a Web VNC client allowing you to run Chromium on any server you have
Stars: ✭ 64 (+16.36%)
Mutual labels:  remote-desktop, vnc

Vernacular VNC

Latest release Build Status License: MIT

Vernacular is a pure Java VNC remote desktop client library. Vernacular is open-source and released under the MIT license.

Getting Started

The latest releases are available for manual download from our releases page. Vernacular is also available through Maven:

Maven

<dependencies>
    <dependency>
        <groupId>com.shinyhut</groupId>
        <artifactId>vernacular</artifactId>
        <version>1.14</version>
    </dependency>
</dependencies>

Gradle

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.shinyhut:vernacular:1.14'
}

Usage

The Vernacular .jar file is executable, and it can be used as a simple but functional VNC client. However, Vernacular is primarily intended to be used as a library in third-party applications:

package com.shinyhut.vernacular;

import com.shinyhut.vernacular.client.VernacularClient;
import com.shinyhut.vernacular.client.VernacularConfig;
import com.shinyhut.vernacular.client.rendering.ColorDepth;

public class VernacularDemo {

    public static void main(String[] args) {

        VernacularConfig config = new VernacularConfig();
        VernacularClient client = new VernacularClient(config);

        // Select 8-bits per pixel indexed color, or 8/16/24 bits per pixel true color
        config.setColorDepth(ColorDepth.BPP_8_INDEXED);

        // Set up callbacks for the various events that can happen in a VNC session

        // Exception handler
        config.setErrorListener(Throwable::printStackTrace);

        // Password supplier - this is only invoked if the remote server requires authentication
        config.setPasswordSupplier(() -> "my secret password");

        // Handle system bell events from the remote host
        config.setBellListener(v -> System.out.println("DING!"));

        // Receive content copied to the remote clipboard
        config.setRemoteClipboardListener(text -> System.out.println(String.format("Received copied text: %s", text)));

        // Receive screen updates from the remote host
        // The 'image' parameter is a java.awt.Image containing a current snapshot of the remote desktop
        // Expect this event to be triggered several times per second
        config.setScreenUpdateListener(image -> {
            int width = image.getWidth(null);
            int height = image.getHeight(null);
            System.out.println(String.format("Received a %dx%d screen update", width, height));
        });

        try {
            // Start the VNC session
            client.start("localhost", 5900);

            // Move the mouse
            client.moveMouse(400, 300);

            // Click a mouse button. Buttons are numbered 1 - 3
            client.click(1);

            // Type some text.
            client.type("Hello world!");

            // Copy some text to the remote clipboard
            client.copyText("Hello from the VNC client!");

            // Let the VNC session continue as long as required
            try {
                Thread.sleep(10000);
            } catch (InterruptedException ignored) {
            }
        } finally {
            // Terminate the VNC session and cleanup
            client.stop();
        }
    }
}

For a more realistic example, see Vernacular Viewer in the source distribution, which demonstrates how to use Vernacular to build a working remote desktop application.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].