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

1.3.3 dev

Skyfighter
40
40
Posts: 127
Joined: 2014-12-31 22:10

Re: 1.3.3 dev

Post by Skyfighter »

VirtualDesktop per UVNC-Session with VirtualMonitor/Mouse/Keyboard: Sounds extremely cool, but wouldn't there be other problems like "one clipboard shared by all users/VirtualDesktops" or applications which are designed to be single-instance (who sees the application? on which screen does it open?)? ((From security point of view this could be a nightmare because all "VirtualDesktops" work in the same Windows UserProfile.))

Thanks for the files 1_3_3_dev4 files, Rudi! (Sidenote: Viewer about dialog says "1.3.3 dev-2" although viewer window title & FileProperties\Details show "1.3.3 dev-4")


I see three other issues / problems:

1) no remote cursor upon (viewer-)connect
(see viewtopic.php?t=37146#p109436 and viewtopic.php?p=109439#p109439)
- 100% reproducible (server & client Win10; encoding was ZRLE; server used ddengine; while testing the server-pc was not locked = unlocked desktop visibe upon viewer connect)
- NO problem exists if at least viewer OR server is <= v1.2.4.0; if both are > v1.2.4.0 (e.g. v1.3.3.0-dev4) cursor is missing upon viewer-connect until the first cursor-shape-change

2) uvnc_service @Win10: ddengine not used after PowerOn/Reboot
In the last months I've observed Win10 PCs (running UVNC-Service) using schook instead of ddengine after power-on/reboot (e.g. v1.2.4.0) multiple times. In these cases it does not seem to matter how often you disconnect/reconnect the viewer -> the server keeps using schook. ((Shouldn't the server re-initialize the ddengine upon a new viewer-connect if a previous initialization failed?))
Workaround: After a manual restart of uvnc_service uvnc server instantly uses ddengine for future viewer-sessions. (Easy but annoying: users don't have admin permissions.) Alternatively the "bigger" (30-50MB RAM usage) winvnc.exe process can be killed via task manager.
On my test-pc with v1.3.3.0-dev4 this problem still exists (not on every reboot, but often), although I can't reproduce it in a VM. Perhaps there is a timing problem / race condition when uvnc_service is started and tries to initialize ddengine while windows is booting? It might depend on the graphics-driver? (PCs with this problem: Intel CPU with graphics)
Any idea about this? Could the the ddengine initialization be somehow hardened?
(One of the smyptoms of this problem is: viewer kind of hangs in "password requested" or "password accepted", if viewer is connected sometimes the systray shows multiple UltraVNC-Icons which go away if you hover them with the cusor = crashed winvnc.exe-processes?)

3) Viewer in window-mode show unnecessary scroll-bars after minimize+restore
Viewer in window-mode (no scroll-bars visible) with SavePos=1 & SaveSize=1: minimize window to taskbar , restore window => window now has (unnecessary) scroll-bars, although the size of the window did NOT change!? (...close the viewer window without resizing...reopen the viewer-connection => scroll-bars are gone.)
If viewer-config is changed to SaveSize=0 the scroll-bars don't appear.
(This bug exists a long time, not sure when it appeared the first time.)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

There are other issue's. Even having 2 mouse/keyboards/screens there is still one inputdesktop.
Only one windows has focus and only one can accept input.

The multimouse tools work in there own app. Insite the app you can allow multiple inputs, there existed a MS multipoint sdk for it. WIth this MS SDK you could replace the single input with a multi input for the app you develop, not for the desktop.


The old vnc patch look nice for multi mouse.
One viewer has the real mouse ( input) the other only display a mouse pointer and clicking the mouse you switch input.

And there are still viewer bugs that need to be fixed :)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

Scrollbar fixed, code commited in git
haramo
Posts: 7
Joined: 2012-06-28 16:39

Re: 1.3.3 dev

Post by haramo »

Dear

I Installed Dev4 1.3.3 .

when I start viewer on a laptop and to take over another laptop in same network (home and both are cabled to the router).

the server laptop has 2 external screens and both and laptop screen are active.

The viewer laptop is without external screens.

Switching monitor works , only that I discovered when I scroll the mouse from top to bottom and back , several times , viewer stops refreshing and I see only black. A work around : I go to the server laptop, start task manager, then I confirm the Windows confirmation to start task manager by clicking yes, it's that moment, when this window appers, that the viewer starts to show back the contect and viewer works again.

Each time scrolling from top to bottom, this happens.

even sometime I did not had the change to do the work around then the viewer chrashed and closes.

one time there were strange images on the viewer, nothing happend, not even the chrash.
At this event, the workaround did not work.

I think it something to do with scrolling vertical.

I noticed too that: when the confirmation windows appeared for the taskmanager, on the viewer the mouse was on the 'yes', but on the server laptop, the mouse cursor was on another screen which did not had this Windows to click on. Most of the time the pointer was on the correct place when this windows appears.
I remember clicking on the monitor, then had a very bad scaled screen , but then the mouse cursor did point to te YES button of the confirmation window.

I hope this explanation is a good infor for you all.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

ddengine fixed:
cause:
DDEngine use ditrectx. Directx is sometimes not available on logon desktops ( secure desktop)
In that case vnc record the settings and set vnc in hooking mode on reinit the old settings need to be used again.

Only problem was that the old settings were saved by the desktop.
And guess.... the desktop thread get killed on viewer disconnect and old settings were lost. On reconnect the settings were still, use hooking.
Saving the old settings with the server fix it.

*yes, service restart or desktop part of the service reload the settings

git updated
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

Haramo,

The taskmanager is a system application. To be able to control a system application winvnc need to be running
as service or started with runas admin.
ddbivens
80
80
Posts: 132
Joined: 2015-12-26 14:53
Location: Tellico Plains, TN 37385 USA

Re: 1.3.3 dev

Post by ddbivens »

I just downloaded and installed the dev 5 update. I installed the program on my laptop then connected to my work computer, with three monitors, via anyconnect. The vncviewer window shows the remote main monitor, at 100%, with vertical and horizontal scroll bars. I click the Select Full Desktop button and the vncviewer window changes to show all three remote monitors, at 100%, with vertical and horizontal scroll bars.
I change the Options / viewer to 82%. The vincviewer display now shows the vertical scroll bar (which I don't need) but looses the horizontal scroll bar (which I do need). I change the Options / viewer to 85%, both vertical and horizontal scroll bars are displayed.

[EDIT] On disconnect/reconnect, the VNC Viewer window size is not shrinking (resizing) for the single monitor display, leaving black displayed on the right edge until I click the right edge to resize the window then it jumps / shrinks to the correct size.
haramo
Posts: 7
Joined: 2012-06-28 16:39

Re: 1.3.3 dev

Post by haramo »

Rudi De Vos wrote:Haramo,

The taskmanager is a system application. To be able to control a system application winvnc need to be running
as service or started with runas admin.

Dear Rudi

I know, I had the uvnc running as a service on both home laptops.

Or maybe I'm not following what you want to say?
haramo
Posts: 7
Joined: 2012-06-28 16:39

Re: 1.3.3 dev

Post by haramo »

maybe a silly question, I installed DEV4 , do I need to uninstall it before to install DEV5 or can I just start install DEV 5 and all will be replaced?
Skyfighter
40
40
Posts: 127
Joined: 2014-12-31 22:10

Re: 1.3.3 dev

Post by Skyfighter »

1) no remote cursor upon (viewer-)connect => fixed in v1.3.3.0-dev5
2) uvnc_service @Win10: ddengine not used after PowerOn/Reboot => fixed in v1.3.3.0-dev5 (Post server reboot/powerup the first viewer connect sometimes uses schook instead of ddengine but on all subsequent viewer connects ddengine is used - perfect!)
3) Viewer in window-mode show unnecessary scroll-bars after minimize+restore => fixed in v1.3.3.0-dev5 but a new bug introduced/appeared

From my point of view v1.3.3.0-dev5 is a big improvement! - Thank you very much Rudi! :thumbs:

I only see one new bug (probably introduced with fix of No3):
3b) The viewer (in window mode) shows a vertical scrollbar (which is unnecessary) while the horizontal scrollbar is missing (although it is needed/necessary).
I have this situation when I connect to a server with two monitors (the viewer sees both remote-monitors upon connect, by default): the window height is big enough (to show remote screen) but the width is limited by the viewer-pc-monitor = window can't be wide enough to show content of both remote monitors. -> Sadly the viewer-window has a verical scrollbar (which is useless and has no active "bar") & the needed horizontal scrollbar is missing, why I can't scroll to the right to see the content of the second server-monitor.
(Perhaps somewhere in the code vertical & horizontal scrollbar got mixed up/inverted?)
I think ddbivens described the same problem: viewtopic.php?t=37146&start=30#p109466

@haramo
If you want to keep your server-settings: just install dev5 over dev4.
If you want to start with default settings: uninstall dev4, delete or rename the config file ("C:\Program Files\uvnc bvba\UltraVNC\UltraVNC.ini"), reboot (not really needed but can't be wrong), install dev5.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

3 gone, a 1/2 back... we are making progress.
Reviewing and testing by the same person who makes it is never a good idea.

Thanks all for testing and a clear description of the problems, this helps a lot.
CPC
40
40
Posts: 65
Joined: 2010-10-08 15:31

Re: 1.3.3 dev

Post by CPC »

Hello

Just confirming a similar issue as Skyfighter...

Server has two screens and the viewer 1.3.3 dev 5 has one screen. When I toggle to see both screens, I get an unneeded vertical scroll bar and I am missing the needed horizontal scroll bar to scroll to the second screen.

*Confirmed: 1.3.3d4 has the needed horizontal bottom scroll bar whereas d5 is missing it.

Thanks for all you do
CPC
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

1.3.3 dev 6
Viewer update

Next scrollbar try. All the different cases make it hard to implement sometyhing what should be simple.
This update only contain the viewer.

https://uvnc.eu/download/133/vncviewer_133_dev6.zip
ddbivens
80
80
Posts: 132
Joined: 2015-12-26 14:53
Location: Tellico Plains, TN 37385 USA

Re: 1.3.3 dev

Post by ddbivens »

Thank you for the dev6 zip release. That has fixed (put back) the scroll bars that went missing.
However I still have an issue with the shifting VNCViewer window. At work my PC has three monitors. My center monitor is my main monitor. The left two monitors are wide screen with matching screen resolutions of 1920x1080 and my right monitor has a resolution of 1280x1024. I launch VNCViewer with a command line including /autoscaling /encodings ultra2. The initial connection to a remote PC that shows a VNCViewer window with both remote monitors of equal resolutions (probably 1920x1080 but I don't think that matters), centered, but edge to edge, on my main monitor. The first time I click on the "Select Full Desktop" button, the VNCViewer window shrinks to show 1, the main, remote monitor. However, the VNCViewer window shift to the left of the center on my main monitor. When I click the "Select Full Desktop" button again, the VNCViewer window is no longer using /autoscaling, expands to show both remote monitors, but the VNCViewer window is moved on to my left monitor some and does not quite reach the the right edge of my center monitor. It looks like it is centered per the three screen resolutions added together / 2. Rather than centered per the center line of my center monitor.
It would be best for me if the program remembered the /autoscaling command and went between all monitors, the main monitor, centered on my main monitor, to all monitors, centered on my main monitor, as it initially opened.
Rudi, I have 7 screen shots showing the VNCViewer window shift left as I click on the "Select Full Desktop" button several times. I will try to find a way to send you the 7 png files of the screen shots.
Thank you for all your outstanding work on this programs!!!
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

What should the behaviour be.

1) autoscale ON.
You switch monitors so that the size of the shown desktops change.

Position of the resized viewer ?
Viewer has same position, left/top stay the same.
Viewer re-center himself based on the new size.

2) autoscale OFF ?
Switching monitor change the scrollbars.
Same position, re-center ?
ddbivens
80
80
Posts: 132
Joined: 2015-12-26 14:53
Location: Tellico Plains, TN 37385 USA

Re: 1.3.3 dev

Post by ddbivens »

My left two monitors are higher res than my right monitor. Represented by the numbers below.
123456 789012 34567
autoscale on
Connect to a remote system with 2 remote monitors. The 2 monitors show in the VNCViewer window, that is centered, edge to edge, on my main, center monitor, at position 789012.
Click Switch Monitors button causes:
1 remote monitor (main) shows in the VNC Viewer window, which resizes and shows at position 890 (shifted slightly left of center of my center monitor).
Click Switch Monitors button causes:
The VNCViewer window expands to show 2 remote monitors (at full width) which shows at position 56 78901.
I know this is a low tech way to show the shifting of the vncviewer window, but that is what happens on my system.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

local: 123456 789012 34567
remote : 1234 567890123456 scale =50 xx xxxxxx
Current implemnetation, after screenchange new center is calculated
When you select screen 1
123456 78xx12 34567
When you select screen 2
123456 xxxxxx 34567
Both
12345x xxxxxx x4567

We also can implement it like this, position is never changed on monitor change.
screen 1
123456 78xx12 34567
screen 2
123456 78xxxx xx567
Both
123456 78xxxx xxxx7


remark: The initial position is calculated for the full desktop, in case you have a small left
the center of all screens is not the center of the middle screen.
1234 12345xx8 1234567890
1234 123xxxxx x234567890

I know, hard to explain.
Or we center on change, or we keep the current position.. i don't know what's the best.
ddbivens
80
80
Posts: 132
Joined: 2015-12-26 14:53
Location: Tellico Plains, TN 37385 USA

Re: 1.3.3 dev

Post by ddbivens »

I can understand that you are working for the good of all the users. When I click on the button "Show Connection Options" that window centers on my center monitor. For my input, if my VNCViewer window centered using the same routine, it would be best for me. Just my input. When I give feedback, I am only trying to help so certainly you do what you think will be best for all users. :D
Keep up the good work Rudi!
mats
Posts: 1
Joined: 2021-03-27 10:07

Re: 1.3.3 dev

Post by mats »

I did a test with the files from dev5 with the viewer from dev6 under WinPE. The goal is to have a good remote console during setup

With UVNC server plus client the update frequency is to low. The blinking cursor is not displayed for example.
Since tiger VNC was mentioned in the thread I did download it and ran the same test.
It's faster and manages the blinking cursor. The server is unmaintained and lacking a crypto plugin it doesn't feel like a good way to go.

I also tested interop with the tigerVNC server and UVNC viewer. This sort of works. I do get the faster update speed (blinking cursor) but the background color doesn't work as it should.
Some brown color instead of the blue it should be

Just my 2c
CPC
40
40
Posts: 65
Joined: 2010-10-08 15:31

Re: 1.3.3 dev

Post by CPC »

Just a little feedback
Confirmed 1.3.3 dev 6 viewer seems to have resolved the scroll bar issue in my use case.
Thanks Again
Craig
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

Added 1.3.3 dev-7
*winpe console support
*if size viewer change, viewer doesn't move.. (test if this is better)
*Last mouse click has controle. If connected with multiple viewers, only the viewer who has the last click can move the mouse. This also prevent mouse hopping when multiple viewers has there mouse on the viewer screen.
(test if this is better)
*Disable touchscreen when input is disabled. (don't have a touchscreen to test it)

https://uvnc.eu/download/133/UltraVNC_1 ... _Setup.exe
https://uvnc.eu/download/133/UltraVNC_1 ... _Setup.exe
https://uvnc.eu/download/133/UltraVnc_133_dev7.zip
stefanorossetti
20
20
Posts: 49
Joined: 2018-11-23 09:48

Re: 1.3.3 dev

Post by stefanorossetti »

in the dev7 version if "scale to windows" is enabled in the lower part it is not possible to click with the mouse, the movement of the mouse in this mode is very slow.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

"scale to windows" tracing back. This is from a previous dev version, size is also wrong
Yep, introduced in dev 6
Fixed

https://uvnc.eu/download/133/UltraVNC_1 ... _Setup.exe
https://uvnc.eu/download/133/UltraVNC_1 ... _Setup.exe
https://uvnc.eu/download/133/UltraVnc_133_dev8.zip
Thomas Levering
40
40
Posts: 84
Joined: 2015-01-23 06:45

Re: 1.3.3 dev

Post by Thomas Levering »

SavePos=On
SavedPositon is on Monitor1
If Maximize to Fullscreen on Monitor1 and Back to Window = OK
If Maximize to Fullscreen on Monitor2 and Back to Window = There are Scollbars H+V (with a small Remote Screen too)
Thomas Levering
40
40
Posts: 84
Joined: 2015-01-23 06:45

Re: 1.3.3 dev

Post by Thomas Levering »

*Last mouse click has controle. If connected with multiple viewers, only the viewer who has the last click can move the mouse. This also prevent mouse hopping when multiple viewers has there mouse on the viewer screen.
(test if this is better)
This is not working if:
*Server Old
*Server not UltraVnc
*Embedded Server from other Company
*If Stop maschine on first Click not working...

I Think it´s better only in Viewer. Only send Mouse move if x,y i changed.
Timer -> Mouse at 2x2 Pixel for 10Sec -> Disable Mouse Events -> if Mouse move or Click -> Enable Mouse Events
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

Verified viewer: mouse is only send if the viewer get a OS message that the mouse moved or button pressed

case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_MOUSEMOVE:

My assumption that the viewer somehow get a message when the mouse on the server is changed, is wrong.
We draw the mouse as icon on the viewer screen, but the real viewer mouse position isn't touched.

The WM_MOUSEMOVE is a system message that tell that the physical mouse has moved.
Only send Mouse move if x,y i changed
Yep, we only send updates when we get this system message, this is how it's already implemented.

Is the physical mouse sending mouse changes while it isn't manual moved ?
( like 998,774; 998,775; 998,774) I have seen this sometimes when a mouse is in the middle of a pixel and vibrations causing it to record changes.
Thomas Levering
40
40
Posts: 84
Joined: 2015-01-23 06:45

Re: 1.3.3 dev

Post by Thomas Levering »

On My Laptop (DELL M6800 Touchpad + Logitech MX518)
and many other

WM_MOUSEMOVE: Event is fired without Move (x and y not changed)

I write a small test programm.
Count WM_MOUSEMOVE event
and count the change of x/y

Same PC in VM Workstation:
Only WM_MOUSEMOVE with changes are send
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev

Post by Rudi De Vos »

Looking online; Seems some people have this issue and it seems to come and go with OS versions.

Is the x and y representing the actual mouse ?

I wonder if we can just can ignore the same event without touching the mouse behaviour.
User avatar
OldNESJunkie
20
20
Posts: 32
Joined: 2017-05-22 21:40
Location: Music City USA
Contact:

Re: 1.3.3 dev

Post by OldNESJunkie »

"On My Laptop (DELL M6800 Touchpad + Logitech MX518)
and many other

WM_MOUSEMOVE: Event is fired without Move (x and y not changed)"

Does it still do this if you disable the touchpad? Those things are notorious for firing off events even when not being used/touched.
Locked