Difference between revisions of "Talk:UltraVNC"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
(To avoid dialog box on uninstall, just install service and service helper manually.)
(Can I remove mention of the mirror driver?)
Line 1: Line 1:
 +
The UltraVNC installer includes the mirror driver. The mirror driver doesn't need to be installed seperately. Can I remove all mention of how to install the mirror driver and difficulties installing the mirror driver from the page? Or, perhaps the mirror driver is mentioned on the page in relation to UltraVNC 1.0.5?
 +
 +
 
Hello,
 
Hello,
  

Revision as of 19:26, 4 September 2008

The UltraVNC installer includes the mirror driver. The mirror driver doesn't need to be installed seperately. Can I remove all mention of how to install the mirror driver and difficulties installing the mirror driver from the page? Or, perhaps the mirror driver is mentioned on the page in relation to UltraVNC 1.0.5?


Hello,

the winvnc.exe -remove popup a dialogbox saying "The WinVNC service has been unregistered".

Is there a way to avoid this message ?

You could 1) start that command in the background, 2) wait several seconds, 3) kill the process displaying the windows with taskkill command
WPKGSysop 16:22, 15 April 2008 (CEST)

I found a best way to do this, just install the service and the service helper manually:

<?xml version='1.0' encoding='utf-8'?>
<packages>
  <package
      id='ultravnc'
      name='UltraVNC'
      revision='102'
      reboot='false'
      priority='500'>

    <check type='uninstall' condition='exists' path='UltraVNC v1.0.2'/>

    <install cmd='%SOFTWARE%\vnc\ultravnc-102-setup.exe /verysilent /loadinf="%SOFTWARE%\vnc\ultravnc.inf"'/>

    <!-- Setup the password and the option -->
    <install cmd='regedit /s %SOFTWARE%\vnc\ultravnc.reg'/>

    <!-- Add the service helper manually -->
    <install cmd='reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v WinVNC /d "\"%ProgramFiles%\UltraVNC\winvnc.exe\" -servicehelper"'/>

    <!-- Create the "VNC server" service manually, add Tcpip dependency not used by auto-installation -->
    <install cmd='sc create WinVNC binPath= "\"%ProgramFiles%\UltraVNC\winvnc.exe\" -service" type= own type= interact start= auto error= severe depend= Tcpip DisplayName= "VNC Server"'/>

    <!-- enable winvnc.exe for the firewall -->
    <install cmd='netsh firewall add allowedprogram "%ProgramFiles%\UltraVNC\winvnc.exe" "WinVNC server" enable all'/>
    <install cmd='net stop WinVNC'>
      <exit code='0'/>
      <exit code='2'/>
    </install>
    <install cmd='net start WinVNC'/>

    <upgrade cmd='net stop WinVNC'>
      <exit code='0'/>
      <exit code='2'/>
    </upgrade>
    <upgrade cmd='%SOFTWARE%\vnc\ultravnc-102-setup.exe /verysilent /loadinf="%SOFTWARE%\vnc\ultravnc.inf"'/>
    <upgrade cmd='regedit /s %SOFTWARE%\vnc\ultravnc.reg'/>
    <upgrade cmd='net start WinVNC'/>

    <remove cmd='net stop WinVNC'>
      <exit code='0'/>
      <exit code='2'/>
    </remove>
    <remove cmd='sc delete WinVNC'/>
    <remove cmd='netsh firewall del allowedprogram "%ProgramFiles%\UltraVNC\winvnc.exe"'/>
    <remove cmd='"%ProgramFiles%\UltraVNC\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES'/>

    <!-- The remove seems to not remove generated files -->
    <remove cmd='%ComSpec% /c rd /S /Q "%ProgramFiles%\UltraVNC"'/>

    <!-- remove unused registery keys -->
    <remove cmd='reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v WinVNC /f'/>
    <remove cmd='reg delete HKLM\Software\ORL /f'/>
    <remove cmd='reg delete HKU\.DEFAULT\Software\ORL /f'/>

  </package>
</packages>

With ultravnc.inf as follow:

[Setup]
Lang=fr
Dir=C:\Program Files\UltraVNC
Group=UltraVNC
NoIcons=0
Components=server,server\driver,dsm
Tasks=cleanreg,properties
PropertiesFile=\\myserver\wpkg\software\vnc\ultravnc.reg

Note that ultravnc.inf does not support variables.

The ultravnc.reg is just a regdump of HKEY_LOCAL_MACHINE\SOFTWARE\ORL, I use the following perl script to generate the password key:

#!/usr/bin/perl -w

use strict;
use warnings;

use Getopt::Long;
Getopt::Long::Configure('gnu_getopt');

use Pod::Usage;

use Crypt::DES;

my ($password, $help, $man);

GetOptions('help|h' => \$help, 'man' => \$man, 'password|p=s' => \$password) or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-exitstatus => 0, -verbose =>2) if $man;

pod2usage (1) if !$password;

my $realkey = pack ('H16', "E84AD660C4721AE0");

my $cipher = Crypt::DES->new($realkey);

my $cryptpass = $cipher->encrypt($password);

print join(',', map {unpack('H2', $_)} split //, $cryptpass), "\n";

__END__

=head1 vncpass.pl

Generate a VNC hex for registry

=head1 SYNOPSIS

vncpass.pl [options]

Options:
	--help	this help
	--password the password you want to crypt

=head1 OPTIONS

=over 8

=item B<--help>

Print this help

=item B<--rne>

Password to encrypt for the windows registry.

=back

=head1 DESCRIPTION

B<vncpass.pl> generate a VNC hex registry entry password and print it
to its standard output.

=cut