RELEASE INFORMATION - exec.dll version 1.01 released May 21st 2008. > Update CLB for mIRC 6.32 - exec.dll version 1.0 released November 1st 2007. > Initial release. AUTHOR & WEBSITE The software provided was written by Loren Segal, clb@soen.ca Please visit http://www.kthx.net/clb/exec for updates. DESCRIPTION exec.dll allows you to execute commands from the Windows shell (cmd.exe) and retrieve the values synchronously or asynchronously via script without having to redirect to a file. This DLL also avoids showing the DOS prompt window, a common side effect of other exec implementations. Ability to send data to stdin of the shell is currently not implemented, but may be in future versions. INSTALLATION To install this script and DLL, it is recommended (but not necessary) to copy the files in this package into a directory within mIRC's installation directory. At that point you can load the script with: /load -rs C:\path\to\exec.mrc USAGE & EXAMPLES Basic usage is /exec or $exec(), see exec.mrc for more details on syntax and optional switches. There are switches that enable you to capture output which are all documented in exec.mrc with the /exec alias. You can also use the -a switch to call commands asynchronously instead of synchronously. With no switches, /exec will echo everything from the output to the screen with default formatting. You can silence output with the '.' prefix. The identifier format can be used to quickly return the first line of standard output (not error output) or pass in a callback command that is more than one word Example to get PATH environment variable into an mIRC variable /var %PATH% = $exec(echo $(%PATH%,0)) Example to pipe output from ipconfig to a window without a callback //window @ipconfig | noop $exec(ipconfig, echo @ipconfig) Example to display your ipconfig results with no special formatting: /exec ipconfig Example to copy a file using the shell (hide all output): /.exec copy file1 file2 Example to handle input from stderr: (asynchronously) /exec -ak rubyhandler ruby -e '$stderr.puts "Hello world"' alias rubyhandler { if ($1 == stderr) echo -a $2- } The same example using ON SIGNAL events instead of aliases: /exec -s RUBYHANDLER ruby -e '$stderr.puts "Hello world"' on *:SIGNAL:RUBYHANDLER:if ($1 == stderr) echo -a $2- * IMPORTANT: If you use /exec without the asynchronous switch to execute any programs that take data from standard input, you will hang mIRC. To break out of this infinite loop, press Control-Break. You can call /dll -u exec.dll to close any asynchronous calls hung by indefinite running programs as well. LICENSE exec.dll is released under a BSD-style license. The only thing that I ask is that you share any modifications to the source with me if you plan on redistributing in binary form. See LICENSE.txt for more information. Not all of the source code of this DLL can be released for legal reasons. The closed source portion of the code resides in the Common Language Bridge module (CLB) and is released as a static compiled library only. The library will eventually be released under the same BSD-style license when I figure out a proper way to distribute the closed source element of the code. The code can be fully compiled using this static library. TRADEMARK NOTICE mIRC is a registered trademark of mIRC Co. Ltd.