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

vnc launch

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

vnc launch

Post by Rudi De Vos »

Some tool i use to manage multiple viewers saved as .vnc files.
Image

vncviewer.exe
vnc_launch.exe
./vnc/server1.vnc
./vnc/server2.vnc
( the .vnc files need to be in a subfolder vnc )

You can also create new .vnc files and rename remove old onces.
*You can save big passwords and user
*data ( user/passwd) is protected with encryption with a key ( each time you start the launcher you need to enter the key)

test exe can, be downloaded
http://www.uvnc.eu/download/1209/UVNC_Launch.zip

Suggestions are welcome...
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

First of all, great idea!! Go on!

Bugs:
  • Vnc folder isn't created while adding a server via GUI, so first of all nothing worked for me.
  • My viewers standard config was destroyed while testing launcher. Don't know why or when exact. This seems to be related to initialising the launcher the first time and writing option.vnc new.
  • Once I did a reset of the password I wasn't able to use the vnc Files although (!) I deleted the options.vnc and I set the server password while re-editing via GUI. There was no pchelpwre.ini to delete.
Feature request:
  • When using repeater: There is no visible difference whether a server is connected to repeater or not. The icon is always yellow. I'd expected a different icon. Red or with red cross or something like this. I know, this would mean you need to check the servers frequently. Therefore just a feature request, no bug.
Last edited by Prisma on 2015-11-19 15:03, edited 3 times in total.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

*vnc folder, correct this is not created. The idea was to do it with the installer, but a little check and create vnc folder from the launcher is better.

*option.vnc is used by vncviewer.exe, it contain the last used servers. This file isn't used by the launcher, checked.
This file exist in the vncviewer.exe folder, if you move vncviewer to a test folder, you also need to copy this file, else
a new is generated.

change pass
*We use a seperate "encryption key" to write user,password in the .vnc file. (blowfish)
When you change the password ( key) for the launcher, the user/passwd field can not be decrypted.
( when you open a .vnc file with edit, you see some unreadable data in the password/user field after you changed the encryption key.
.vnc files are stil intact, you only need to reset the password/user so it is saved with the new encryption key( using edit)

Files
pchelpware.ini : Check if a custom passwd is set and contain a decrypted word to check if the entered passwd is correct
option.vnc: vncviewer.exe mru list
*.vnc in /vnc/ folder: contain all viewer settings, the launcher add some extra field user/passwd/listen port. The extra settings are only used by the launcher.

launcher start vncviewer with a shellexec
sample ( with a not empty user/passwd)
vncviewer -user user -password pass -config selected.vnc

icon state:
next part, 3 states ( offline, online,connected)
The problem is that vncviewer is started with the launcher, but run as a seperate exe. Onces started we don't have direct communication with it.
Using a rfb message i can check from the launcher if a server is reachable ( offline/online) but knowing if a viewer is connected
would require viewer changes.

For a repeater it even harder. Only the repeater know the connected servers. So the launcheer need to have an embedded browser
to connect to the repeater to readout the connect data...

Yep, a lot of things can be added, but it need to stay simple.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Thanx for background info. Now some thing are more explainable:
Rudi De Vos wrote: change pass
.vnc files are stil intact, you only need to reset the password/user so it is saved with the new encryption key( using edit)
This was clear so far. But using edit didn't do the trick. Otherwise I wouldn't have reported this. But read on... M$ hell...
Rudi De Vos wrote: pchelpware.ini : Check if a custom passwd is set and contain a decrypted word to check if the entered passwd is correct
Now I found a pchelpware.ini in C:\Users\foo\AppData\Roaming\uvnc\pchw\settings. This is the M$ f***** virtualization hell with roaming profiles. I assume this is my problem with the password reset and no bug. I'll cross-check this.
But "uvnc\pchw\settings" says, it should have been written in "%programfiles%\uvnc\pchw\settings". That's incoherent. Please make sure no hardcoded fixed paths are used. For you it's clear. But why should I expect a pchelpware.ini in "%programfiles%\uvnc\pchw\settings"? I'm using "%programfiles%\ultraVNC".
Rudi De Vos wrote: icon state:
Using a rfb message i can check from the launcher if a server is reachable ( offline/online) but knowing if a viewer is connected
would require viewer changes.
Online/offline would be enough in the first step. Connected is for later versions :)
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Don't get me wrong. But there must be more I don't know. If I copy a working vnc file (created with launcher+"add") within the "vnc" subfolder, the copy is shown after a view seconds or manual a rescan. If I try to connect with the launcher a message appears:
---------------------------
Argument error
---------------------------
Can't open specified config file for reading.
---------------------------
OK
---------------------------


I compared the files with winmerge, I compared the ACLs with icalcs, no difference. There must be another "registry" where the files a managed. But what is it?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

Thanks for testing...

I'm current working on the 20 second restart time when the service start winvnc.exe in another session. A company want this
time a lot shorter.
Launcher need to wait a few days.

Nothing is saved in registry, we read the folder and search for .vnc files.
Are there special chars or spaces in the filename, possible it's bad translated.
I didn't placed "" around the file so spaces are handled incorrect.
we start the viewer as
vncviewer.exe -config ./vnc/abc.vnc
vncviewer.exe -config ./vnc/ab c.vnc <<< Fail, file ab does not exist

Perhaps adding
connect
listen
edit
rename
delete
show command <<<<<<
for debug could explain things like this.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

C:\Users\foo\AppData\Roaming\uvnc\pchw\settings

We use the roaming path, this is the correct path to put data that can be accesses by a normal user.
MS say as standard you need to use Appdata/Roaming/company/product
"Program files" are protected and only elevated admins can write.
Or
We write it in the same folder, this way the launcher is portable and you can copy all
on a usb stick.

Perhaps portable is better ?

Src is based on the pchelpware gui, didn't wanted to rewrite all. Yes all strings need tobe replaced by uvnc
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Rudi De Vos wrote: Or
We write it in the same folder, this way the launcher is portable and you can copy all
on a usb stick.
I'd write, read and search in the same directory. If the directory is %programfiles% and you're no administrator M$ should do the magic with roaming paths for you automatically. The viewers options.vnc is handled the same way. Why should we handle it different?
Rudi De Vos wrote: I didn't placed "" around the file so spaces are handled incorrect.
ARG, the spaces... I spend nearly an hour in investigating, but this obvious difference I didn't notice. It's also me fault. But no problem, a alpha version is an alpha version :)
Rudi De Vos wrote: Launcher need to wait a few days.
Yes yes, no problem. I'd say, my reverse reconnect problems are also more important, at least for us/me ;)...

THX for your work.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

http://www.uvnc.eu/download/1209/UVNC_Launch01.zip

Update
*spaces allowed in names ( "ab c.vnc")
*spaces allowed in path ( " program files ")
*.vnc and config file in ./uvnc/ folder, relative to the uvnc launch exe
*folder auto created on start
*properties allow to set vncviewer path, so you can run vnclaunch on your desktop while vncviewer.exe stay in the program folder.
A normal user can easy save settings as desktop is write/read
*added icon to give online status of the servers ( scan every 5 minutes) or after the reload button.
Don't press the reload multiple times in a short period, to avoid server blacklist. The scan just ask the rfb version and
close the connection, without passing passwd.
I'm still need to test with encryption, possible this wil not work. Only server connections are checked, not repeater connections.

Still need to find another way to pass user/passwd... like mentioned in another post, using the commandline makes
them visable when you ask the commandline of a process via the taskmanager.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Rudi De Vos wrote:Still need to find another way to pass user/passwd... like mentioned in another post, using the commandline makes
them visable when you ask the commandline of a process via the taskmanager.
The easiest way to pass parameters, besides commandline parameters, are environment variables. But tools like process explorer and others show you the complete environment of a process. One click. Also less secure.
I'm not that familiar with IPC but the only things I could imagine are:
* SendMessage
* named pipes
* localhost socket
Could be also captured, but harder to do.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Issues:
* vncwiewer has to be chosen. Without choosing the viewer "\vncviewer.exe" could not be found. ".\vncwiewer.exe" would be expected behaviour.
* I well read that only server connections should be checked, no repeater connections. But repeater connections are checked (vnc files using a repater/proxy), they fail (regardless encrypted or not) and show a red cross.

Feature request:
* Double click = connect

SecureVNC Plugin:
Is the connection encrypted directly on connect or after a different kind of previously unencrypted handshake? Or better: Is RFB Version queried before or after encryption?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

plugin is encrypted from start, rfb message is unreadable.

viewer connect
server send rfb message ( encrypted or plain)
viewer answer with his rfb message.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Rudi De Vos wrote:plugin is encrypted from start, rfb message is unreadable.
Normal "forward" waiting servers:
So, for encrypted waiting servers a check of the RFB protokol is technical not possible. Why is there a need to query the RFB version? Why you don't use a simple socket connect for testing?

Reverse connections:
A presence check of servers waiting at repeater is technical possible by querying repeater but not yet implemented. Not without changes to repeater I guess, but technical possible.
As long this is not implemented the icons should stay yellow. But accidentally they are tested at the moment, of course they fail and get a red cross...
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

WIthout sending the viewer rfb, the server popup a "failed to connect error from ip a.b.c.d"
It works, but would not be that nice.

I'm using the host to check, with a repeater this is ID and connect to ID fail.

A check ID and get repeater host can be added
We actual can make a connection via the repeater to the server, but then after disconnect the server need to reconnect
to the repeater as the connection is broken.

First i need to find the latest repeaters src back, then i can play with this little addon.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

http://www.uvnc.eu/download/1209/_Launch02.zip

changes
**dblclick
**repeater show as different icon, we test if repeater is reachble, not the actual server
**encryption ok, seems first rfb isn't encrypted
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Doubleclick = Connect not working

Repeater checks OK now. Only a general question: Is a presence check of waiting servers on the repeater planned for future releases?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

L-dblclick was working, it's the same as connect.
I will check it again

repeater check, not yet.
1)
It need to be done with a http connect to the repeater to get the stat html page.
Analyzing the page we should be able to see who is connected or not.
or
2) We actual make a connection to the server using the repeater and disconnect after getting
the rfb massage.
This is simple to implement, but if non autoreconnect servers wil be gone after viewer breaks connection.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

I'd say querying the repeater by http is performing best. Analysing html is in your special case is possible and easy because of the static self defined structure. (In other cases I'd say to complex, it would be easier to implement a simple webservice)
For us it would be OK to kick non autoreconnect servers by querying RFB because all server do autoreconnect. But for other this wouldn't be ok for sure.
And what about established server viewer connections? Wouldn't they been dropped if the check queries RFB on a second connect?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

Implementation wil be as follow.

1° we check if repeater is online
2° we query the web page of the repeater using the provided ( properties) user/passwd.
If in the page data >12345< the ID between > < exist, we consider the server alive.

I know, this is still no garantie that you actual can connect but less intrusive then realy query the server.

Code finished, just need to implement the properties read/write user/passwd data.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

http://www.uvnc.eu/download/1209/UVNC_Launch03.zip

connect to web interface and check if ID exist

green/green -> direct
green/blue -> via repeater
with (x) not able to connect or ID not found

user/passwd need to be set
repeater host is taken from .vnc
web interface is current hardcoded to port 80, forgot that it can be set to another port.
Skyfighter
40
40
Posts: 127
Joined: 2014-12-31 22:10

Re: vnc lauch

Post by Skyfighter »

I always wanted some kind of connection manager, but never found a usable one for daily usage...this one looks really promising!

Just played with it a few minutes...some ideas came to my mind:
1) save launcher window-size in uvnclaunch.ini (after resize/on close) and restore the window size at the next launcher-start
2) allow groups/sub-categories under "Server"-Tree; perhaps simply use subfolders in the "/uvnc/" folder (could be easily managed by manual creation of directories and moving *.vnc files into these subdirectories using windows explorer)
3) allow selection of renamed "vncviewer.exe" in "Path to vncviewer.exe" (currently only a path seems to be accepted/usable); this way all flavours of vncviewer.exe could be stored in one directory (vncviewer_x64.exe, vncviewer_win2k.exe, ...)
4) after clicking on the "refresh"-button: disable the button until refresh is completed, then re-enable it (-> suppress multiple refresh-clicks in a too short time)

Thank you very much! Will start using this launcher from now on...it just makes things much easier! :thumbs:
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Rudi De Vos wrote:web interface is current hardcoded to port 80, forgot that it can be set to another port.
Arg. Doesn't fit for us. We have to use custom ports for our repeaters (plural) because 1 computer hosts 2 repeaters.

3 suggestions:
  • As well as the webgui port I'd give also the (optional, otherwise taken from .vnc) possibility to configure a hostname for repeaters webgui.
    Dependent of the infrastructure the webgui does not need to be exposed/resolved with the same hostname as the repeaters viewer and server ports.
  • Using webinterface analysis you're able to visualize the different states of IDs: Waiting server, waiting Viewer,ID not present and ID connected. I think it would be a good idea to set colors of icons according to these states.
  • I think it's a good idea to implement a mouse over (balloon) hint to show the state as well as text. Or should it be done by a for example grayed item of the context menu? Other suggestions?
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

Prisma, please keep it simple.
All repeater states are not relevant for a "launcher", then you better open a html page and watch it in realtime.
A server support multiple connectios, so for the launcher it doesn't matter if someone is connected or not.
He only need to know if a viewer can connect or not.

Check ID on multiple repeaters: Only possible if this is added as extra field in the .vnc files.
So no general repeater setting, but a on viewer base setting. For people with a single repeater this
is a lot of work as no .vnc file will be able to get his repeater status before you manual enter all info.
Perhaps one general settings for a single repeater that get overwritten by .vnc settings....


skyfigher:
folder reflect in treeview so you can order servers... yep simple to explain, folders understand most people.
Natural, next question would be to be able to move files from the launcher...that wil not be implemented.
Poeple need to use an explorer for it.
save position: ok simpel.

Thanks, keep giving good idea's.
We see what can be added and what's not to complex to program.
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Rudi De Vos wrote:Prisma, please keep it simple.
A server support multiple connectios, so for the launcher it doesn't matter if someone is connected or not.
I wish I could confirm that. And I well read that secureVNC is a multithread enabled plugin in contrast to rc4 plugin. But, at least using a reverse connection over repeater, this does not work. Connect to same ID drops other connection. Sorry to say that. Otherwise I hadn't suggested that.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

Reverse connections are server initiated, so the viewer only wait for a connection.
You can initiate multiple connections, simultanious.

Using a reater the server can also create (manual) multiple connects ( ID 1234 ID 1245 etc...).

Only as service , using the service_commandline, you are restricted to a single "auto restart" connection.


The "repeater monitor" idea you have is nice, but it's more fore a launch 2.0.
This can easier be done by changing the webgui by adding some cvs or xml output then spending hours on
trying to analyse unstructured html code.

Then you can ineed add
connected/already wating/ready etc...
to have a fast overview.

For 1.0 a simple ID check need todo the trick.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

con/server/viewer was only a few lines of code and could be easy extracted.

Icons ?

server direct online [gr]
server direct offline[red]
repeater offline[red][red]
repeater online + no ID [gr][red]
repeater online + ID server[gr][gr]
repeater online + ID viewer[gr][yellow]
repeater online + ID connected[yellow][yellow]
Prisma
100
100
Posts: 320
Joined: 2005-10-27 15:50

Re: vnc lauch

Post by Prisma »

Personally I could live with every colour. But intuitively I'd say green is a signal for connected. At the first glance this seems also more consistent. But leads to a problem:

server direct online [yellow]
server direct offline [red]
repeater offline [red][red]
repeater online + no ID [gr][red]
repeater online + ID server [gr][yellow] <--
repeater online + ID viewer [gr][yellow] <-- How to differentiate this from server ID server?
repeater online + ID connected [gr][gr]

So, as long you have no good idea how to differentiate this, or we decide to not differentiate this or only by text, your first suggestion is quite good.

Let us try your suggestion. If I would have a brilliant idea after seeing, feeling and testing your solution, I think it shouldn't be a big deal to change colours later one time again ;)
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

This are bmp bitmaps files 16x16.
You can always be creative and create some :)
Skyfighter
40
40
Posts: 127
Joined: 2014-12-31 22:10

Re: vnc lauch

Post by Skyfighter »

Skyfighter wrote: 4) after clicking on the "refresh"-button: disable the button until refresh is completed, then re-enable it (-> suppress multiple refresh-clicks in a too short time)
Re-think that wish and the whole online/offline check/icon-state thingy: Cold you please consider to implement
- a launcher-setting to enable/disable the online/offline-checking at launcher-startup and
- a launcher-button (next to "Properties" / "Reload servers" buttons) which globally enables/disables the recurring online/offline-check
?

Here is the reason for that wish: Think of remote dial-in service usage; you connect to a network using vpn...then you start the launcher with 20+ vnc-connection profiles in launcher uvnc-directory). The launcher now tries to determine the online/offline state of all these vnc-connection profiles.....you'll waste bandwith /slow down the vpn conection although it might not be necessary. That will happen every x minutes (5?) when the launcher automatically tries to refresh the online/offline state.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6868
Joined: 2004-04-23 10:21
Contact:

Re: vnc lauch

Post by Rudi De Vos »

Update
http://www.uvnc.eu/download/1209/UVNC_Launch04.zip

You can define a global webgui ( user/pass/host/port) for a repeater
You can add this also to the .vnc files, in that case it overwrite the global settings

scan options
[v]auto 5 minutes
[v]scan on refresh

Added scan cache for repeater status, no need to connect each time if multiple .vnc use the same repeater.

remenber position: this was already done
remember size : added

Not done, folder split of .vnc.

I need to finish some commercial requests , on hold for a week or less.
Post Reply