++ed by:

2 PAUSE users
1 non-PAUSE user.

Mark Dootson
and 1 contributors


exe_update.pl - Modify windows executable files


exe_update.pl [ --gui | --console ] [ --icon iconfile ] [ --manifest manifestfile ] [ --info key=value;... ] exefile


This program rewrites PE headers in a Windows executable file. It can change whether the executable runs with a console window, as well as setting the icons, manifest and version information associated with it. In general, a PE file must have an existing resource section or you cannot add icons, manifests or version info. However, on Win32 platforms a new resource section will be created if none exists.


Options are available in a short form and a long form. For example, the three lines below are all equivalent:

    % exe_update.pl -i new.ico input.exe
    % exe_update.pl --icon new.ico input.exe
    % exe_update.pl --icon=new.ico input.exe
-c, --console

Set the executable to always display a console window.

-g, --gui

Set the executable so it does not have a console window.

-i, --icon=FILE

Specify an icon file (in .ico, .exe or .dll format) for the executable.

-m, --manifest=FILE

Specify a manifest file in .xml format for the executable.

-N, --info=KEY=VAL

Attach version information for the executable. The name/value pair is joined by =. You may specify -N multiple times, or use ; to link several pairs.

These special KEY names are recognized:

    Comments        CompanyName     FileDescription FileVersion
    InternalName    LegalCopyright  LegalTrademarks OriginalFilename
    ProductName     ProductVersion
-A, --manifestargs=KEY=VAL

As an alternative to specifying a manifest file, specify manifest attributes. The name/value pair is joined by =. You may specify -A multiple times, or use ; to link several pairs. This option may be preferable to using a manifest file as these attributes will be combined with any existing manifest that may be in the executable.

These special KEY names are recognized:

    ExecutionLevel  UIAccess     ExecName   Description
    CommonControls  Version

The CommonControls key is a simple boolean value to indicate that the Common Controls Version dependency should be added to the manifest.


--manifestargs="ExecutionLevel=requireAdministrator;ExecName=My.App;CommonControls=1" --manifestargs="Version=;UIAccess=false"


Audrey Tang <cpan@audreyt.org>


Copyright 2004, 2006, 2010 by Audrey Tang <cpan@audreyt.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html