Windows installer has a bunch of properties that you have access to that
will handle this for you.
http://msdn.microsoft.com/en-us/library/aa372057.aspx

<Property Id="COMMANDPROMPT">[SystemFolder]cmd.exe</Property>
Should work except that you might need a custom action to set it.

-----Original Message-----
From: Alicia Holloway [mailto:ahollo...@sounddes.com] 
Sent: Tuesday, January 20, 2009 1:53 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] How to add an Operating System specific shortcut

Hi,

I have a Wix project in which I am trying to add a shortcut to a command
prompt which calls a batch file as a command line argument.  With the
code I
have so far (see below), I can get it to work on Windows XP only,
because
the environment variable it's using to find the cmd.exe program is
determined at compile time (and it's being compiled on an XP).

It doesn't work on Windows 2000 because the system32 directory is not
under
"Windows" but rather, under "WINNT".  The shortcut appears on the start
menu
on Windows 2000 systems but, clicking on properties displays the line:
"C:\Windows\System32\cmd.exe /k projectvars.bat"...so it can't find
cmd.exe.

Product.wxs:
------------------

<Property Id="COMMANDPROMPT">$(env.WINDIR)\system32\cmd.exe</Property>

(alternatively, $(env.ComSpec) could be used instead of
$(env.WINDIR)\system32\cmd.exe)


Files.wxs:
--------------

<Shortcut Name="Project Command Prompt" Target="[COMMANDPROMPT]"
Arguments="/k projectvars.bat" Id="CommandLineStartMenuShortcut"
WorkingDirectory="BinFolder" Icon="ProjectVarsIcon.exe"
Directory="ProjectToolsProgramMenuFolder">
          <Icon Id="ProjectVarsIcon.exe" SourceFile="cmd.ico"/>
</Shortcut>


Is there any way to modify this code so that it determines the value of
the
environment variable at runtime?  Or, is there a way of setting a
different
filepath so that it uses the Sys32Folder property somehow?  I briefly
attempted to change the property to:

<Property Id="COMMANDPROMPT">[Sys32Folder]\cmd.exe</Property>

to see if that could work...but was given the following warning when I
tried
to compile it:

"If this value is a string literal, not a property reference, please
ignore
this warning.  To set a property with the value of another property, use
a
CustomAction with Property and Value attributes."

But wasn't able to figure out how a CustomAction would apply in this
situation.


Any help would be greatly appreciated!

Best Regards,
Alicia
------------------------------------------------------------------------
------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to