Win32::Unicode::Shortcut - Perl extension for Windows Unicode Shortcut interface
use Win32::Unicode::Shortcut; BEGIN { Win32::Unicode::Shortcut->CoInitialize(); } my $LINK = new Win32::Unicode::Shortcut; $LINK->{'Path'} = "notepad.exe"; my $target = "C:\\Windows\\Temp\\Target.lnk"; $LINK->{'Arguments'} = "Euro-sign:" . chr(8364) . ", Chinese character: " . chr(25105); $LINK->{'WorkingDirectory'} = "C:\\"; $LINK->{'Description'} = "Target Description with alef character: \x{05D0}"; $LINK->{'ShowCmd'} = 1; $LINK->{'Hotkey'} = 115; $LINK->{'IconLocation'} = "%SystemRoot%\\system32\\SHELL32.dll"; $LINK->{'IconNumber'} = 10; $LINK->Save($target); $LINK->Close(); END { Win32::Unicode::Shortcut->CoUninitialize(); }
This is the Unicode version of Win32::Shortcut. This module exposes all methods of Win32::Shortcut, plus the initialisation layer which is application specific. So the whole documentation of Win32::Unicode::Shortcut consists of: the documentation of Win32::Shortcut that the reader should read first, and the Methods section below.
Any bug in Win32::Unicode::Shortcut should be nevertheless send to me via RT of course -;
Unless your application has already initialized the COM layer, via Win32::OLE or Win32::API for example, you will have to do so.
You can have fine-grained granularity on the threading model, using CoInitializeEx. The COINIT_CONSTANT must be of one COINIT_APARTMENTTHREADED, COINIT_MULTITHREADED, COINIT_DISABLE_OLE1DDE or COINIT_SPEED_OVER_MEMORY.
None by default.
If the variable $Win32::Unicode::Shortcut::CROAK_ON_ERROR is setted to a true value, then the module will croak at any Windows API call error, with a meaningful message. For example doing a Load without an COM application initialisation will look like the following:
C:\>perl -e "use Win32::Unicode::Shortcut; $Win32::Unicode::Shortcut::CROAK_ON_ERROR = 1; $L = new Win32::Unicode::Shortcut;" CoCreateInstance, CoInitialize has not been called
It is advisable to set this variable before the initialisation, and to reset it after, or to use the optional parameter of the initialisation functions to get it temporarly on during their execution.
Win32::Shortcut Understanding and Using COM Threading Models at http://msdn.microsoft.com/en-us/library/ms809971.aspx Win32::OLE
Jean-Damien Durand, <jeandamiendurand@free.fr>
Copyright (C) 2012 by Jean-Damien Durand
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.
To install Win32::Unicode::Shortcut, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Win32::Unicode::Shortcut
CPAN shell
perl -MCPAN -e shell install Win32::Unicode::Shortcut
For more information on module installation, please visit the detailed CPAN module installation guide.