Name | Modified | Size | Downloads / Week |
---|---|---|---|
Misc | 2010-08-13 | ||
AU3Automation | 2010-08-03 | ||
Build Tools | 2010-08-03 | ||
AU3Automation_samples | 2010-08-03 | ||
README.txt | 2010-08-03 | 4.7 kB | |
Totals: 5 Items | 4.7 kB | 0 |
AutoIt-v3-COM Automation Bridge library consists of two parts, a COM proxy DLL AU3Aut.dll/AU3Aut64.dll and a small UDF AU3Automation.au3 - both are in the archive. Extract the DLL somewhere on your computer (<WinDir>\system32 would be a good destination but it is up to you), then do regsvr32 AU3Aut.dll resp. on 64-bit system regsvr32 AU3Aut64.dll (or alternatively just run attached AU3AutRegsiter.au3 script) in the directory, where you extracted it, copy then the UDF files in your AutoIt include directory and start writing automation servers in AU3. Things you can do with AU3Automation * Create COM server in your plain or compiled AU3 script, in latter case AutoIt doesn't even need to be installed on the target computer to use the server. * Export any user defined function. * Export any global variable (some types aren't supported, s. exceptions below). * Call exported functions or read/write exported variables from any programming language that supports late binding (i.e. "CreateObject"). * Read all AutoIt @macros from COM clients. Although some macros appear quite pointless in the client context (like dynamic ones: @error, @NumParams, @ScriptLineNumber) but most of them are pretty handy. Things you cannot do with AU3Automation * Export AutoIt built-in functions. A simple UDF wrapper would be exactly as good. * Export DllStruct variables or use them as parameter or return type in exported function. No great loss: most of possible clients won't understand them anyway. * Access parameters in exported functions ByRef. * Raise a specific COM error from within AU3. This is planned in the future, in the meantime you always can export a readonly variable and save error code or description in it (s. examples). * Use objects created with AutoItObject in exported variables or return values of exported functions. This is a pity but maybe one day I can convince the AIO team to add marshalling to their great tool. * Make coffee, your wife happy and perform brain surgery. Things you shouldn't do with AU3Automation * Use pointers (not even converted to numbers) in exported variables and return values of exported functions. Because the COM server is started in a separate process it has its own address space and all pointers are invalid - thus useless - from the client's perspective. * Block the execution of an exported function for to long (f.i. by displaying a MsgBox without timeout). AU3Aut proxy only waits a certain time span for a call to complete and let the client see failure if the call doesn't return in time. The default timeout is 20000 ms and can be set in the client as the second optional parameter of AU3Aut.Load(). * Use AU3Aut server in ASP or any other networking server application accessible from behind the firewall, it is just to risky. * Manufacture weapons of mass destruction. Requirements * AutoIt 3.3.4.0 (minimum) * AutoItObject 1.0.x <http://www.autoitscript.com/forum/index.php?showtopic=110379> (though its core functionality isn't the subject here, it provides OLE tools I was to lazy to write myself ;) ) * DDEML 1.5.4 <http://www.autoitscript.com/forum/index.php?app=downloads&showfile=174> (make sure you have at least this version) Version History 1.0.6 * AU3Aut.dll/AU3Aut64.dll: library name set to SF project label. * README.txt: added to distr. archive 1.0.5 (re-registration of AU3Aut*.dll is recommended) * AU3Aut.dll/AU3Aut64.dll: threading model fixed. * AU3Aut.dll/AU3Aut64.dll: compiler junk stripped. * AU3Aut64.dll: genuine 64 TLB. 1.0.4 * AU3Aut.dll/AU3Aut64.dll: relinked. * AU3Automation.au3: resolved some 32/64 bit ambiguities. 1.0.3 (re-registration of AU3Aut.dll is required) * AU3Aut.dll: IScriptlet and derivatives renamed to IAU3Scriptlet to avoid name collisions. * AU3Aut.dll: Linked against recent SDK to match with AU3Aut64. * AU3Aut64.dll: new. * AU3AutRegister.au3: new. 1.0.2 * AU3Aut.dll: ShellExecuteEx verb set to NULL, so it works in custom AU3 installations. 1.0.1 (re-registration of AU3Aut.dll is necessary) * AU3Aut.dll: some memory leaks fixed. * AU3Aut.dll: marshalling optimized. * AU3Aut.dll: added AutoIt property to script object for reading @macros. * AU3Automation: export for @macros added. * AU3Automation Samples: examples for reading @macros added.