1.3.3 dev-12

Post Reply
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

1.3.3 dev-12

Post by Rudi De Vos »

* Ultr@VNC - Latest modifications – History
1.3.3 dev 12
Scaling fix (Thomas Levering)

32/64bit
https://www.uvnc.eu/download/133/UltraVnc_133_dev12.zip
32bit
https://www.uvnc.eu/download/133/UltraV ... _Setup.exe
64bit
https://www.uvnc.eu/download/133/UltraV ... _Setup.exe
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

Next
FullScreenTitleBar
changed files in my Onedrive

the size of the FullScreenTitleBar changes with DPI change
tyan0
8
8
Posts: 21
Joined: 2021-08-10 03:14

Re: 1.3.3 dev-12

Post by tyan0 »

I found one more color issue in vncviewer.

Versions:
UltraVNC viewer: 1.3.3 dev 12 (current git head: 01ec455a13742c367a36431a742588e0b9fd2df3)
vncserver: tightvncserver 1:1.3.10-3 (debian bullseye)
Server OS: Debian GNU Linux (bullseye)
Client OS: Windows 10 x64 (21H1)

Overview:
If UltraVNC viewer connects to tightvncserver (in Linux) using Tight encoding with pixel format of rgb555, screen color will be broken. 8bit color (depth 8) also has similar issue.

Steps to reproduce the issue:
1. Install tightvncserver in debian (bullseye).
2. Start vncserver in debian with

Code: Select all

tightvncserver -geometry 1024x768 -depth 16 -pixelformat rgb555
3. Connect to the vncserver using UltraVNC viewer (1.3.3 dev 12) from Windows10 client machine.

Resulting screenshot with the issue:
Image

Expected screenshot without the issue:
Image

I looked into this problem, and found the following patch fixes the issue.

The patch which fixes the issue:
https://tyan0.yr32.net/files/one-more-t ... -issue.zip
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

Thanks, i gonne let the patches cummulate a little before creating a new tag and version.
Next dev version around 7 sept
Release around 15 sept
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

compiled exe with all patches (tyanO and my)

https://1drv.ms/f/s!AkdsiVHAVCeBhjFMuxmAGxOAqLdT
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

ok, gonna try this one, with previous test i got

Viewer Height was 0 on connect compiled with VS2019
Viewer crashed compiled with VS2017

Was introduced 18//08 with Patch DPI and Autosize, patch vnc4server was still ok.

Damm, I still have it
debug build: viewer Height small, around 20
release build crash on MRU

10.0 (latest installed version)
Visual Studio 2019 (v142)

Your exe seems to work
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

test
Download "UltraVNC-development.zip" from Git
unzip in new folder
change files from "vnc 2021 08 29.zip"

Open "vncviewer_vs2017.sln"
not Autoupgrade
mark all and change to 10.0 and v142

All is working.
(Only Debug x64 not -> LNK1104 Datei "zlibstat.lib" ..)

VS2017 not installed
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

It have to be some compiler options because the release build also crash with older commits.
Still need to find the one causing it.
Possible this is also related to the height issue as your exe seems to work ok.

dev10 was still ok, so i need to test each commit from that point ... fun
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

Found

Code: Select all

	HMODULE hUser32 = LoadLibrary(_T("user32.dll"));
	typedef HRESULT(*AdjustWindowRectExForDpi) (LPRECT, DWORD, BOOL, DWORD, UINT);
	AdjustWindowRectExForDpi adjustWindowRectExForDpi = NULL;
	
/*
if (hUser32)
		adjustWindowRectExForDpi = (AdjustWindowRectExForDpi)GetProcAddress(hUser32, "AdjustWindowRectExForDpi");
*/
This cause my heap to be corrupt using AdjustWindowRectEx all works

Reenabled AdjustWindowRectExForDpi
Calling this and heap is corrupt, testrect isn't used for anything

Code: Select all

RECT testrect = { 100,100,100,100 };
		adjustWindowRectExForDpi(&testrect,
			                     GetWindowLong(m_hwndMain, GWL_STYLE) & ~WS_VSCROLL & ~WS_HSCROLL,
			                     FALSE,
			                     GetWindowLong(m_hwndMain, GWL_EXSTYLE),
			                     m_Dpi);


Solution
typedef HRESULT(*AdjustWindowRectExForDpi) (LPRECT, DWORD, BOOL, DWORD, UINT);
need to be replaced by
typedef BOOL(WINAPI* PFN_AdjustWindowRectExForDpi) (LPRECT, DWORD, BOOL, DWORD, UINT);
code pushed, alse moved the loadlibrary to the init, this only need to be done once
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

:thumbs:
Downloaded, and Test OK

the testrect is for Autosize
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

Still 2 exploits to fix befor release... (:
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

i hope the last changes from me :)

add option only in Ini
1.
AutoScalingLimit=1
-> If Windows Scale/Dpi is 150% Autosize is max 150%
-> If Windows Scale/Dpi is 200% Autosize is max 200%
per Monitor

2.
BlockSameMouse=1
if the Server is not UltraVnc and more then One Client. Block MouseEvents with no changes
disabled default.
Only Enable per Option/Ini, some have problems with this


options.vnc

Code: Select all

[options]
AutoScaling=1
AutoScalingEven=1
AutoScalingLimit=1
BlockSameMouse=1
Thomas Levering
40
40
Posts: 83
Joined: 2015-01-23 06:45

Re: 1.3.3 dev-12

Post by Thomas Levering »

FullScreenTitleBar :evil:

Resolved (Only with Multimonitor with different DPI)
add "::SetWindowRgn" after DPI change

and save hLastMonitor TitleBar on wrong Monitor
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6536
Joined: 2004-04-23 10:21
Contact:

Re: 1.3.3 dev-12

Post by Rudi De Vos »

security issue's fixed and added in git
Pushed your latest updates (Thomas Levering )
Post Reply