in reply to Active Perl Dev Kit

If you check out the source of MSI::Installer.pm's SetShortcut() method and you will see:

$self->{msi_db}->AddData(Shortcut => [ {'Shortcut' => StrToUKey($target_file +), 'Directory_' => $dir_key, 'Name' => $shortcut_name, 'Component_' => $component, 'Target' => $Feature, 'Arguments' => $argument_str, 'Description' => 'Description', 'Hotkey' => undef, 'Icon_' => undef, 'IconIndex' => undef, 'ShowCmd' => undef, 'WkDir' => undef, }],

If you have a look here you will see the property names associated with shortcuts objects in VBS. You can see the WorkingDirectory property. I strongly suspect that 'WkDir' in the above code corresponds to this. So just hack the Installer.pm source to take a 4th arg and use it to set 'WkDir'. With a bit of luck it should work. For reference here is a VBS example of creating shortcuts which shows you the object property names. In a worst case you could always run something like this to generate the required shortcut.

' Get a Shell object Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") ' Create a shortcut object Dim MyShortcut Set MyShortcut = WSHShell.CreateShortcut("C:\Temp\Shortcut.lnk") ' Set shortcut object properties and save it MyShortcut.TargetPath = "\\server\xyz\foo.exe" MyShortcut.WorkingDirectory = "\\server\xyz" MyShortcut.WindowStyle = 4 MyShortcut.Save

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print