Celebrating the 22th anniversary of the UltraVNC: https://forum.uvnc.com/viewtopic.php?t=38031
Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: https://forum.uvnc.com/viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864

Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc

UltraVNC 1.3.0 Alpha - Download links

EXIO
Posts: 7
Joined: 2019-11-19 10:30

Re: 1.3.0 Alpha online

Post by EXIO »

Is there a remote monitor (server) limitation with ultravnc ?
We have some uvnc servers that have 4 and 5 monitors, and we couldn't manage to have this working...
gal_17
Posts: 2
Joined: 2020-02-25 11:20

Re: 1.3.0 Alpha online

Post by gal_17 »

Will there be support for croatian letters čćšđž?? When connected with vnc viewer these letters not working or some of them working but not all.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Yes the number of monitors is limited to 64.
I only don't know if uvnc will be able to switch between all, never tested with more then 3.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Special chars:
*Are you using different keyboards on server and viewer.

*The viewer has 2 keyboard modes < viewer option mouse/keyboard tab, second mode is called Japanese keyboard, but possible also work with other)
The server options also has 2 keyboard modes you can check
[]alternate keyboad
[]internationjal keys

You can try if some combination works. Having different keyboards on server and viewer,
make it behave different.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Update
*added a zip file with exe

https://www.uvnc.eu/download/130/UltraVnc_130.zip

Changes:
Viewer fullscreen/normal missing caption fixed.

The normal behaviour is that extra displays disconnect when all viewers disconnect.

Added exception for a single extended.
viewer 1 connect with extend 800x600 -> server 1920 x1200 + ext 800x600
viewer 2 connect with extend 1280x800 -> server 1920 x1200 + ext 800x600 + ext 1280x800
viewer 3 connect with extend 600x400 -> server 1920 x1200 + ext 800x600 + ext 1280x800 + ext 600x400
..
max 64 displays
Viewer 2 disconnect -> server 1920 x1200 + ext 800x600 + ext 600x400
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Damm, it looks that the monitor selection made by the viewer is a server setting.
Connecting 2 viewers create 2 virtual displays, but switching on one viewer also switch it on the other.
You have 2 screens, but you can't put one on viewer 1 en the second on viewer 2.

This gonna take some research...
EXIO
Posts: 7
Joined: 2019-11-19 10:30

Re: 1.3.0 Alpha online

Post by EXIO »

Hello,
Thanks for your reply.
I tried this latest zip that you posted, and it's the same problem.
If I connect to a machine (w10) that has 4 or 5 monitors, I can only see the first screen.
The select Full desktop doesn't do anything.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Multi monitor selection is something that exist for many years, it isn't a new feature.

When ddengine/driver is used
You can select 1 2 3 ALL
Else you switch between 1 and ALL ( only 2 modes)

Even if you have 4 or 5 screens you still should be able to switch with the viewer button. At leasts between 1 and ALL, this always works.
Are you using the this switch viewer button
https://www.uvnc.com/docs/documentation ... plays.html

Current replacing 1 2 3 with unlimited, but if 1-all doesn't work, the new implementation will also not work.
EXIO
Posts: 7
Joined: 2019-11-19 10:30

Re: 1.3.0 Alpha online

Post by EXIO »

Hello,

Yes I used the Full desktop switch.
Here are my testing steps.
0 - Machine With 3 monitor
1- Open VNC
2 - I can see 1 Screen
3 - Click on the Full Desktop Switch
4 - I can see 3 Screens
5 - Plugin 4th DP Cable
6 - VNC automatically adapts and I can see 4 Screens

Next
7 - I close the VNC session and reopen again
8 - I can see 1 screen
9 - Click on the Full Desktop switch
10 - Nothing happens (Restarting the machine is the same...)
ddbivens
80
80
Posts: 132
Joined: 2015-12-26 14:53
Location: Tellico Plains, TN 37385 USA

Re: 1.3.0 Alpha online

Post by ddbivens »

SkyBeam wrote:So I have some feedback too...

Installation:
- Does not deploy certificate
- Unattended deployment asks for manual driver installation confirmation after
...
SkyBeam, did you find a solution to the driver installation that will allow for a silent install? Is there a way to do a silent install of the drivers first then install UltraVNC after?
I did find the command:
pnputil -i -a *.inf
that says it will allow installing a driver inf file. I have not tried it to see if it is silent our loud. I have a scrapable system at work that I will test on tomorrow.
Thanks.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

In the latetst setup.exe the cert is added to the thrusted publishers.
This should avoid the popup when you run winvnc the first time.

Code: Select all

[Run]
Filename: "certutil.exe"; Parameters: "-addstore ""TrustedPublisher"" {app}\ultravnc.cer";StatusMsg: "Adding trusted publisher..." 

Code: Select all

[UninstallRun]
Filename: "certutil.exe"; Parameters: "-delstore trustedpublisher 01302f6c9f56b5a7b00d148510a5a59e";StatusMsg: "Removing trusted publisher..." 
If you copy the subfolder with the driver to temp or change the path you also can add it manual.

Code: Select all

pnputil /add-driver c:\temp\UVncVirtualDisplay64\UVncVirtualDisplay.inf 
This add the driver to the store.
winvnc load the driver from store.

You can also add it as legacy driver using the dvice manager
Device manager -> Display adapters->Action
add legacy
install manual
have disk and select the inf.

Only problem is that device is now permanent.
The virual driver is allways active and when vnc connect he add a second display.

After install (device manager) you need to remove it. The driver is still in the store
and vnc can use it.

The permanent display can be usefull.
It works with other vnc flavors or an old ultravnc version that's not capable of
Activating the driver.
Driver activation require a service or admin. If vnc can be started that way you could pre activate
the extra display.

A lot of options :)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Updates:

Image

You can open as many viewrs as you like and each open his extended display.
A lot of code needed to change one single capture for all screens and only send the relevant part to the corresponding viewer...while now all changes always reflect to all viewers.
The more code you change the higher the risk of introducing bugs.

Update server and viewer is needed, Protocol changed !!!!!!!!!!!!

Recorded a little video , adding 3 extended viewers "show only extend mode"
1) is a Hyper-v server
Image
https://www.uvnc.eu/download/130/virtual2.mp4

Downloads
https://www.uvnc.eu/download/130/UltraV ... _Setup.exe
https://www.uvnc.eu/download/130/UltraV ... _Setup.exe
https://www.uvnc.eu/download/130/UltraVnc_130.zip
EXIO
Posts: 7
Joined: 2019-11-19 10:30

Re: 1.3.0 Alpha online

Post by EXIO »

Hellos,

Thanks for the new version.
It seems that now I can see more screens, but something seems wrong with the mouse after Clicking on the Select Full Desktop.
It isn't correctly positioning and start flickering like crazy..
Performance wise seems slower I think.. But I will run more tests again in 2h more or less, I will keep you posted.
SkyBeam
80
80
Posts: 143
Joined: 2012-12-31 11:01

Re: 1.3.0 Alpha online

Post by SkyBeam »

I confirm that with the latest exe installer (not ZIP) there is no query about driver trust any more. So yes the certificate is added by the installer. Even though I did not see the certificate later in the trust store. Perhaps it gets removed after.
If you intend to manually deploy the UVNC binaries you got 2 options:
  • Remove the virtual screen subfolder from UVNC installation folder to avoid any driver installation (but you can't use virtual screens then).
  • Install driver manually. Preferrably before you run UVNC server.
To install the driver manually I did test the following procedure:
  • Install certificate: certutil -addstore -f -enterprise "TrustedPublisher" "%~dp0uvnc-bvba.cer"
  • Install driver: pnputil /add-driver "%ProgramFiles%\...\driver.inf"
  • Clean certificated: certutil -delstore -enterprise "TrustedPublisher" "01302f6c9f56b5a7b00d148510a5a59e"
Note: You can extract uvnc-bvba.cer from the cab file in the driver folder, it contains the signature and certificates.
Also note: You can remove the certificate from the truststore after having deployed the driver; adding devices with this driver will still work. You can also leave the certificate deployed but exposing yourself to some security risk that if the certificate gets compromised anybody will still be able to deploy drivers with this certificate until revoked. If you remove it immediately after deploying the driver nobody could deploy additional drivers with the same certificate in unattended manner.
You can also use pnputil to remove the driver again if you like to.

As said too: This is included in the latest exe installer. So no need to manually deploy certificates or install drivers, the installer will do this.
EXIO
Posts: 7
Joined: 2019-11-19 10:30

Re: 1.3.0 Alpha online

Post by EXIO »

Confirmed, the mouse is not working when Selecting Full desktop *4 monitors in my case
EXIO wrote:Hellos,

Thanks for the new version.
It seems that now I can see more screens, but something seems wrong with the mouse after Clicking on the Select Full Desktop.
It isn't correctly positioning and start flickering like crazy..
Performance wise seems slower I think.. But I will run more tests again in 2h more or less, I will keep you posted.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.0 Alpha online

Post by Rudi De Vos »

Mouse:
Extend pc with laptop screen.
Are you using the laptop or server mouse to test ?
In extended mode most people are going the laptop just as screen, this need to work in fullscreen mode.
Does the viewer need to be able to controle the server pc in this case ? Possible single extend only == view only

I also noticed the mouse behaving strange, but suspected that Hyper-v and the viewers were fighting for the mouse.
szymon.nowak
20
20
Posts: 52
Joined: 2011-12-09 22:21

Re: 1.3.0 Alpha online

Post by szymon.nowak »

Hi Rudi, maybe alternatively you could add a function to move all the active application windows to the primary screen. Here is the code of the function in AutoIt, I think it will be similar in C

Code: Select all

Func MoveallAPP_To_PrimaryScreen()

While 1	
$getwindow = WinList()
For $i = 1 to $getwindow[0][0]
  If $getwindow[$i][0] <> "" AND IsVisible($getwindow[$i][1]) Then
	 WinMove($getwindow[$i][1], "", 0, 0)
  EndIf
Next
ExitLoop
WEnd
EndFunc
Edit 20.11
C# code

Code: Select all

using System;
using System.Drawing;

public static class DisplayFusionFunction
{
	public static void Run(IntPtr windowHandle)
	{
        // Get the Primary monitor's ID
        uint primaryMonitor = BFS.Monitor.GetPrimaryMonitorID();
        
        // Loop through all monitors
		foreach (uint monitor in BFS.Monitor.GetMonitorIDs())
		{
            // Ignore the Primary monitor
            if (primaryMonitor != monitor)
            {
                // Loop through all windows on the monitor and move them to the Primary monitor
                foreach (IntPtr window in BFS.Window.GetVisibleAndMinimizedWindowHandles())
                {
                    if (BFS.Monitor.GetMonitorIDByWindow(window) != primaryMonitor)
                        BFS.Window.MoveToMonitor(primaryMonitor, window);
                }
            }
            
        }
	}
}
Locked