# Feature Request: Add "external tool" support in Actions

**URL:** https://community.mp3tag.de/t/feature-request-add-external-tool-support-in-actions/7327
**Category:** General Discussion
**Created:** [October 13, 2008, 11:08pm UTC](https://community.mp3tag.de/t/feature-request-add-external-tool-support-in-actions/7327 "2008-10-13T23:08:01Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Moonbase](https://community.mp3tag.de/user_avatar/community.mp3tag.de/moonbase/32/207_2.png) [@Moonbase](https://community.mp3tag.de/u/Moonbase)
#### Post date: [October 13, 2008, 11:08pm UTC](https://community.mp3tag.de/t/feature-request-add-external-tool-support-in-actions/7327/1 "2008-10-13T23:08:01Z")

</div>

I’d wish for the possibility to have something like the "Tools" available for Action Groups.

This would help a lot in building _the_ universal Tagger – and leave all the options to the user.

I’d use it for ["standard cover images"](https://community.mp3tag.de/t/7328/1) for instance (which I now painfully do in Photoshop):

1. An album folder _can_ have a cover image called »%albumartistsort% - %album%.jpg«.
2. If there’s a cover image in a file, I use the »Extract« action to save this instead (same name).
3. _I run some [ImageMagick](http://www.imagemagick.org/) tools (convert/mogrify) on the cover to make it JPEG 160x160 px, 72 dpi._
4. I re-import the cover with the »Import« action.

Now step (3) would be nice to have … same scheme as »Tools«:  
Name, Path, Parameter, [x] for all selected files.

Or, even simpler, something like:  
**$exec('Title','path','parameter',showconsolewindow)**  
where

- _$exec_ = function name
- _Title_ = Title for the console window (if shown)
- _path_ = Path to executable, or batch file
- _parameter_ = any command line parameters passed to executable/batch file
- _showconsolewindow_ = Flag (bool) to indicate whether or not to show the console window

How do other MP3Tag users feel about this?

---

<div class="post-metadata">

### Author: ![psychowood](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@psychowood](https://community.mp3tag.de/u/psychowood)
#### Post date: [February 7, 2010, 9:35am UTC](https://community.mp3tag.de/t/feature-request-add-external-tool-support-in-actions/7327/2 "2010-02-07T09:35:31Z")

</div>

Bump! on this old request. I registered to post a new one and I've just found that someone else asked before me 🙂

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [February 7, 2010, 10:44am UTC](https://community.mp3tag.de/t/feature-request-add-external-tool-support-in-actions/7327/3 "2010-02-07T10:44:50Z")

</div>

> [@Moonbase](#):
>
> I’d wish for the possibility to have something like the "Tools" available for Action Groups. This would help a lot in building _the_ universal Tagger – and leave all the options to the user. ...

I throw in my vote + 1.

There are some variations possible to run an external application ...

1. **Run** Runs a program as a normal window.

Syntax:  
Run (program-name, parameters)

Parameters:  
(s) program-name the name of the desired .EXE, .COM, .PIF, .BAT file, or a data file.

(s) parameters optional parameters as required by the application.

Returns:  
(i) @TRUE if the program was found; @FALSE if it wasn't.

2. **RunShell** An advanced form of the Run function that even allows the specification of a working directory, along with the window view mode and whether or not to wait for completion of the run program in a single function. See Also: ShellExecute

Syntax:  
RunShell (program-name, params, directory, display mode, waitflag)

Parameters:  
(s) program-name the name of the desired .EXE, .COM, .PIF, .BAT file or a data file.

(s) params optional parameters as required by the application.

(s) directory target directory (if applicable).

(i) display mode @NORMAL, @ICON, @ZOOMED, @HIDDEN

(i) waitflag @WAIT, @NOWAIT, @GETPROCID, @GETEXITCODE.

Returns:  
(i) @TRUE if the program was found.; @FALSE if it wasn't.

3. **ShellExecute** Runs a program via the Windows ShellExecute command

Syntax:  
ShellExecute (program-name, params, directory, display mode, operation)

Parameters:  
(s) program-name the name of the desired .EXE, .COM, .PIF, .BAT file or a data file.

(s) params optional parameters as required by the application.

(s) directory current working directory (if applicable).

(i) display mode @NORMAL, @ICON, @ZOOMED, @HIDDEN.; or 0 for the default mode.

(i) operation operation to perform on the specified file.

Returns:  
(i) @TRUE on success; @FALSE on failure.

Florian, it should not be too heavy to write such an extension to the Mp3tag scripting language as well as having a special action "Run external application" or "RunWait, RunHideWait, RunIcon, RunIconWait, RunZoom, RunZoomWait" or such.

DD.20100207.1244.CET
