Weird quirk in MSDOS batch wrapper for vncveiwer

A. John Peters ajpeters "at"
Wed, 02 Jan 2002 15:52:48 +0000

Try winbatch fron Wilson software  We use it all the

-----Original Message-----
From: owner-vnc-list "at"
[mailto:owner-vnc-list "at"]On Behalf Of Alex Angelopoulos
Sent: Monday, December 31, 2001 3:58 AM
To: vnc-list "at"
Subject: Re: Weird quirk in MSDOS batch wrapper for vncveiwer


Speaking as someone who does a bit with Win32 scripting (and used to do much
more with it on Unix in college) you know of course
that you are working with implements "poorly suited for their intended
:) - of course, your options are limited...

I tried the script you showed on XP, and I get the same server not found
error whether I am using it with or without the optional
args embedded, no matter what the version of viewer I use.

A VBScript may be much cleaner for you, and one which gives you a clean
command line is fairly trivial to write if you know WSH very
well. I went ahead and wrote a wrapper for this in VBScript.  This should
work as far as giving you a clean command line, and
executes properly with WSH 5.6 ( you may need to update your version of WSH
to make it work, but I doubt it).

If you DO need to update, the download should be
for a North American English version that works on Me.

If it works, in "payment" I would like to hear what you are doing and why
you are using so many configurations - I do a lot with
remote control tools from Windows clients, and your situation sounds alittle

(1) To make linewrap issues apparent, I have numbered the lines.
(2) This should work whether you have cscript or wscript defined as your
"default" WSH environment.
(3) To "see" the command line, uncomment line 027.
(4) If you make mods to this, make sure that any paths with embedded spaces
are wrapped with quotes (as in line 009, a
never-documented and ever-present irritation in VBScript and Jscript) AND
make certain you have spaces attached between components.

002.   'init arguments object
003.   Set objArgs = WScript.Arguments
004.   'init the Shell object so we can issue a shell command to run the
command line when we are done
005.   Set objShell = WScript.CreateObject("WScript.Shell")
008.   ' Use the chr(34) to wrap quotes around path with spaces in it
009.   cmdBase = chr(34) & "C:\Program Files\ORL\vncviewer.exe" & chr(34)
010.   'here's the static options you want
011.   cmdMid = "-encoding hextile -compresslevel 9 -quality
0 -noshared -noemulate3 -fullscreen"
012.   'init the arguments to nothing
013.   cmdArg = ""
016.   For I = 0 to objArgs.Count - 1
017.    'build a command line out of parsed arguments, one space between
018.    cmdArg = cmdArg & " " & objArgs(I)
019.   Next
022.   'chop any leading/trailing whitespace
023.   cmdLine = trim(cmdBase & " " & cmdMid & " " & cmdArg)
026.   'Following line if uncommented will show you what your line looks
like, delimited with a period at start and end
027.   'WScript.Echo "." & cmdLine & "."
029.  'DO IT
030.   'The following line runs the command so that vncviewer is VISIBLE (1)
and script does NOT wait until apps exits, but
terminates ("true").
031.   objShell.Run(cmdLine, 1, true)

----- Original Message -----
From: "Shing-Fat (Fred) Ma" <fma "at">
To: <vnc-tight-list "at">; <vnc-list "at">
Sent: Monday/2001 December 31 03:05
Subject: Weird quirk in MSDOS batch wrapper for vncveiwer

: Hello,
: Hope all the traffic I'm generating on this list eventually does some
: good e.g. for anyone else who may run into similar situations.
: I'm more of a unix guy writing an MSDOS batch wrapper on my WinME
: machine for the vncviewer.  Eventually, I will replace all my slightly
: different shortcuts to the vncviewer with the wrapper.  Since the
: wrapper takes care of most of the desired options, it would be easy
: to compare the different shortcuts and modify them when needed.  It is
: also easy to do global modifications on the wrapper itself.  I also
: avoid having a listening daemon on the system tray, just to retain
: my favoured default settings.
: After doing some reading on MSDOS (and ruling out the possibility
: of cygwin bash wrappers for various reasons), I came up with a one-line
: wrapper:
:      c:\progra~1\tightvnc\vncviewer.exe -encoding hextile
:          -compresslevel 9 -quality 0 -noshared -noemulate3
:          -fullscreen %1 %2 %3 %4 %5 %6 %7 %8 %9
: If I invoke this wrapper without any arguments,
: VNC complains that it failed to connect.  It works fine
: if I leave out the % variables, but that doesn't allow the wrapper
: to be supplied with additional options (possibly overriding the
: hard coded options in the wrapper).  It also works if I specify
: a server after all the % variables, but that makes the wrapper
: too specific.
: I thought that the problem is that the series of
: spaces after the -fullscreen option is being mistaken for a
: server specification, but I don't get the error if I type the command
: at the DOS prompt (with spaces at the end instead of the
: % variables).
: I even replaced the vncviewer.exe with an
: invocation of my own debugging script just to see whether
: those extra end spaces were being meaningfully interpretted
: (e.g. as a server specification), but all argument variables
: after -fullscreen have zero length (confirmed with
: the command "echo %%3=_%3_", for example).  The arguments
: beyond -fullscreen were obtained by 10 consecutive MSDOS "shift"
: commands, and I verified that I was looking at them
: by adding a few extra dummy arguments after -fullscreen.
: Anyway, I'm at a loss as to why I'm getting the error, and it
: seems to be an interplay between how MSDOS passes
: arguments to a binary executable, and how the executable
: handles extra spaces at the end of the command line.  If
: anyone more experienced in MSDOS scripting can suggest
: an explanation (and maybe a workaround), that'd be great.
: Thanks.
: Fred
: --------------------------------------------------------------------------
: Fred Ma
: Department of Electronics
: Carleton University, Mackenzie Building
: 1125 Colonel By Drive
: Ottawa, Ontario
: Canada     K1S 5B6
: fma "at"
: ==========================================================================
: ---------------------------------------------------------------------
: To unsubscribe, mail majordomo "at" with the line:
: 'unsubscribe vnc-list' in the message BODY
: See also:
: ---------------------------------------------------------------------
To unsubscribe, mail majordomo "at" with the line:
'unsubscribe vnc-list' in the message BODY
See also:
To unsubscribe, mail majordomo "at" with the line:
'unsubscribe vnc-list' in the message BODY
See also: