The following works for me on ActivePerl v5.6.1 on Win2k. It appears to be the minimal solution.
use Win32::Shortcut ();
my $s = Win32::Shortcut->new();
$s->Path('C:\\TEMP');
$s->Save('C:\\TEMP.lnk');
# Test the shortcut.
# Make sure C:\TEMP exists.
# Make sure you have no windows displaying C:\TEMP.
system('start "C:\\TEMP.lnk"');
The above was extracted from the following longer test:
use strict;
use warnings;
use Win32::Shortcut ();
# Examine existing shortcut to C:\WINNT.
my $s1 = Win32::Shortcut->new();
$s1->Load('C:\\WINNT.lnk');
print map { my $key = $_;
my $val = $s1->$key();
sprintf("%-17s %s\n",
"$key:",
defined $val ? $val : '[undef]'
) }
qw( Path
ShortPath
Arguments
WorkingDirectory
Description
ShowCmd
Hotkey
IconLocation
IconNumber );
# Clone existing shortcut to C:\WINNT.
my $s2 = Win32::Shortcut->new();
do {
my $key = $_;
my $val = $s1->$key();
$s2->$key($val);
} foreach qw( Path
ShortPath
Arguments
WorkingDirectory
Description
ShowCmd
Hotkey
IconLocation
IconNumber );
$s2->Save('C:\\WINNT2.lnk');
system('start "C:\\WINNT2.lnk"');
# Create new shortcut to C:\TEMP.
my $s3 = Win32::Shortcut->new();
$s3->Path('C:\\TEMP');
$s3->Save('C:\\TEMP.lnk');
system('start "C:\\TEMP.lnk"');
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|