Win32::Shortcut

This module allows you to create and manipulate Windows shortcut files (.lnk files) through Perl. The methods and properties of this module apply to shortcut objects created by new:

use Win32::Shortcut;
$link = Win32::Shortcut->new(  );

This creates the shortcut object $link, on which you can set properties and save into a file. If you supply a filename as an argument to new, the file will be loaded into the shortcut object.

The object can also be accessed as if it was a normal hash reference. The following properties (hash keys) are available:

$link->{'File'}               
$link->{'Path'}
$link->{'ShortPath'}
$link->{'WorkingDirectory'}
$link->{'Arguments'}
$link->{'Description'}
$link->{'ShowCmd'}
$link->{'Hotkey'}
$link->{'IconLocation'}
$link->{'IconNumber'}

See Section 22.18.1 for a description of each property.

The following example assumes you have a shortcut file named test.lnk in your current directory. This simple script will tell you where this shortcut points to:

use Win32::Shortcut;
$link=new Win32::Shortcut(  );
$link->Load("test.lnk");
print "Shortcut to: $link->{'Path'} $link->{'Arguments'} \n";
$link->Close(  );

But you can also modify its values:

use Win32::Shortcut;
$link=new Win32::Shortcut(  );
$link->Load("test.lnk");
$link->{'Path'}=~s/C:/D:/i;   # Move the target from C: to D:
$link->{'ShowCmd'}=SW_NORMAL; # Runs in a normal window

The methods provided by Win32::Shortcut are as follows.

Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.