Any idea how to get around the black screen issue when UltraVNC is running as a service in Vista? I noticed that the guys at gotomypc.com manage to run a service application that still gets access to the Vista desktop. Can we learn something from the way that they accomplish the task?
After January, you're going to get slammed by people asking for it to work properly in Vista. PC Helpware is cool and I'm glad that it works in Vista but there still needs to be a service for LAN workstations.
I am doing the best that I can to come up with a solution on my own but I have to admit that I'm c++ stupid so I'm attacking the problem by looking for a way to hack Vista to let it access the desktop for now.
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
- 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
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
- 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 as a service in Vista
Re: UltraVNC as a service in Vista
Ok, in my digging, I've found some more information that may be helpful with others attempting to figure this out.
According to http://download.microsoft.com/download/ ... rvices.doc, and http://download.microsoft.com/download/ ... _Vista.doc, They are now isolating session 0 for services. I've just begun to thumb through those documents for a clue on how to fight this restriction for VNC.
If anyone else gets a clue, please help us out.
According to http://download.microsoft.com/download/ ... rvices.doc, and http://download.microsoft.com/download/ ... _Vista.doc, They are now isolating session 0 for services. I've just begun to thumb through those documents for a clue on how to fight this restriction for VNC.
If anyone else gets a clue, please help us out.
Re: UltraVNC as a service in Vista
Also, see the thread on MSDN at :
http://forums.microsoft.com/MSDN/showpo ... 2&siteid=1
It looks like winvnc.exe will need to be called by a stub launcher. That launcher will need to be the actual service.
Does this make sense?
http://forums.microsoft.com/MSDN/showpo ... 2&siteid=1
It looks like winvnc.exe will need to be called by a stub launcher. That launcher will need to be the actual service.
Does this make sense?
Re: UltraVNC as a service in Vista
It also seems (from the MSDN thread) that the stub launcher API call will fail if no-one is logged on, so it will be impossible to serve the initial logon screen.
- Rudi De Vos
- Admin & Developer
- Posts: 6863
- Joined: 2004-04-23 10:21
- Contact:
Re: UltraVNC as a service in Vista
Forget services for Vista, it doesn't work.
The only way it can be done is be a icredential provider.
This is the replacement in Vista of the interface that's reponsible for
showing the logon window. (GIna)
We need to start ultravnc, together with the logon window. Both run in
the same session, so capture and input should be possible.
*I still need to do a lot of experiments.
+credential provider is called multiple time
+ find the correct spot to start ultravnc, i current have injected some beeps, but this is called serveral times (screensaver,switch user,logon,logoff)
+Does the user after logon keeps the same session as the logon interface.
+ How to act on user switching.
Ideal, a service will only be responsible for a stable network connection.
The icredentail provider start a capture input module that communicate
via some IPC with the service.
service -->put input on IPC -->application read input and emulate key/mouse
application --> capture data IPC--> service read capture data
Non of the Vnc programs where written for a split network--capture/input,
This is a lot of work, and will only work in Vista...
The only way it can be done is be a icredential provider.
This is the replacement in Vista of the interface that's reponsible for
showing the logon window. (GIna)
We need to start ultravnc, together with the logon window. Both run in
the same session, so capture and input should be possible.
*I still need to do a lot of experiments.
+credential provider is called multiple time
+ find the correct spot to start ultravnc, i current have injected some beeps, but this is called serveral times (screensaver,switch user,logon,logoff)
+Does the user after logon keeps the same session as the logon interface.
+ How to act on user switching.
Ideal, a service will only be responsible for a stable network connection.
The icredentail provider start a capture input module that communicate
via some IPC with the service.
service -->put input on IPC -->application read input and emulate key/mouse
application --> capture data IPC--> service read capture data
Non of the Vnc programs where written for a split network--capture/input,
This is a lot of work, and will only work in Vista...
Re: UltraVNC as a service in Vista
So, does this mean that there will not be a version of UltraVNC that will auto-start in Vista?
I hear that RealVNC is doing something to make theirs work. It may be worth while to see how they pull it off. They say that it will work in their open source version.
I hear that RealVNC is doing something to make theirs work. It may be worth while to see how they pull it off. They say that it will work in their open source version.
Re: UltraVNC as a service in Vista
It should also be noted that the Vista glassy desktop feature throws UltraVNC off. It will not update the screen properly with Glass Aero running.
Hopefully people will be slow to adopt Vista because of the enormous list of other incompatibilities so that should buy some time to figure this stuff out.
Hopefully people will be slow to adopt Vista because of the enormous list of other incompatibilities so that should buy some time to figure this stuff out.
Re: UltraVNC as a service in Vista
Hi,
In order to capture logon screen. we could implement our Credential and implement something like this.
[syntax="c"]
//~~~~~~~~~Code Start
HRESULT CSampleProvider::SetUsageScenario(
CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
DWORD dwFlags
)
{
UNREFERENCED_PARAMETER(dwFlags);
HRESULT hr;
static bool s_bCredsEnumerated = false;
switch (cpus)
{
case CPUS_LOGON:
case CPUS_UNLOCK_WORKSTATION:
if (!s_bCredsEnumerated)
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
::GetStartupInfo(&si);
::CreateProcess("C:\vista\UltraVNC\winvnc.exe",NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
hr = E_NOTIMPL;
}
else
{
hr = S_OK;
}
break;
default:
hr = E_INVALIDARG;
break;
}
return hr;
}
//~~~~~~~~~Code End
[/syntax]
In order to capture logon screen. we could implement our Credential and implement something like this.
[syntax="c"]
//~~~~~~~~~Code Start
HRESULT CSampleProvider::SetUsageScenario(
CREDENTIAL_PROVIDER_USAGE_SCENARIO cpus,
DWORD dwFlags
)
{
UNREFERENCED_PARAMETER(dwFlags);
HRESULT hr;
static bool s_bCredsEnumerated = false;
switch (cpus)
{
case CPUS_LOGON:
case CPUS_UNLOCK_WORKSTATION:
if (!s_bCredsEnumerated)
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
::GetStartupInfo(&si);
::CreateProcess("C:\vista\UltraVNC\winvnc.exe",NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
hr = E_NOTIMPL;
}
else
{
hr = S_OK;
}
break;
default:
hr = E_INVALIDARG;
break;
}
return hr;
}
//~~~~~~~~~Code End
[/syntax]
Last edited by smkashif on 2006-12-14 22:18, edited 1 time in total.
Re: UltraVNC as a service in Vista
Hi all,
In order to start WinVNC in Vista at logon (it should work on W2K, XP & W2K3 too), you'd rather use a Network Provider than a Credential Provider ... it would be much simpler ...
Regards,
Eric.
In order to start WinVNC in Vista at logon (it should work on W2K, XP & W2K3 too), you'd rather use a Network Provider than a Credential Provider ... it would be much simpler ...
Regards,
Eric.