I have a different view now on the COM/OLE/ActiveX issue, in the debate of AutoIt versus AutoHotkey. I do not
think AutoIt's implementation of COM/OLE/ActiveX is all that vastly superior to AutoHotkey's "quasi" support of COM/OLE/Activex. Furthermore, many people don't realize that AutoHotkey offers a method for you to use VBScript/JScript and thus COM/OLE/ActiveX.
command allows you to use JScript/VBScript in AutoHotkey scripts. Therefore, you get "quasi" COM/OLE/ActiveX support in AutoHotkey. Obviously, AutoHotkey's approach is more of a "work around", but this "work around" method may be more powerful and useful
(via able to support other scripting language). I do however, have issues with AutoHotkey's "quasi" support of COM/OLE/ActiveX via a "round about" method in terms of :
1. Explaining how to use JScript/VBscript in AutoHotkey scripts. Examples would be nice. (Note- Chris has said he would correct this in an update of AutoHotkey)
2. Using syntax like "FileAppend
" to support such functionality as oppose to using a more obvious syntax like "OtherScript".
3. I think that "other script" support in AutoHotkey should be expanded. This would provide another method to integrate AutoHotkey's automation and hotkey abilities with other scripting languages like Phython, Perl, .NET scripting languages like ( NScript, Cscript, C# Script, etc...).
4. CMDret (Dll solution to get console output by Corrupt ( http://www.autohotke...opic.php?t=3687
)) should be integrated with AutoHotkey.
Note1- Chris and Corrupt have made plans to do this in a future update of AutoHotkey.
Note2- A related AHK solution to get output from console applications and without using a DLL (works under more simplified situations) was demonstrated by Laszlo ( http://www.autohotke...opic.php?t=5944
AutoIt's implementation of COM/OLE/ActiveX is so close to VBScript that it creates a very good argument of why not simply USE VBScript for COM/OLE/ActiveX present itself? An advantage would be IF AutoIt simplified COM/OLE/ActiveX, but arguably AutoIt does NOT and in reality AutoIt has only a "slightly different flavor" of COM/OLE/ActiveX that "fits" better with AutoIt syntax and thinking.
AutoHotkey "round about" method simplifies the issue of using COM/OLE/ActiveX since you don't have to learn a "new flavor" of it and simply use VBScript and JScript, which are both very well documented.
But, if AutoHotkey ever came up with its own simplified COM/OLE/ActiveX support than this might prove very advantageous to script in addition to the many simplified and easy use commands like Loop and for GUI. I'm on the side that simplified and/or easier is often better, if its just as powerful, because you often can write a script FASTER
and it can be EASIER
to come up with SOLUTIONs.
Anyway, as a result of AutoIt's implementation of COM/OLE/ActiveX being so close to VBScript and AutoHotkey's ability to use commands like FileAppend
, CMDret (by Corrupt), and the related AHK solution to get output from console applications ( by Laszlo ) allow you to use VBScript/JScript inside of AutoHotkey scripts makes AutoIt and AutoHotkey a lot more evenly matched than many people think when it comes to COM/OLE/ActiveX. In fact, its often more a matter of preference, as oppose to one scripting language being clearly superior to another.I mention these points because
in many arguments that I have seen about AutoIt versus AutoHotkey, the COM/OLE/ActiveX point is often brought up
or many act like this is suppose to be the number 1 factor in which is better. Many people are not aware of what you can do with AutoHotkey in terms of VBScript/JScript and thus COM/OLE/ActiveX.
So if you take away the so-called COM/OLE/ActiveX advantage by AutoIt, than exactly what advantages does AutoIt have? I think many would be surprised that AutoHotkey's advantages in easier to use and understand syntax will start to show themselves more. I think some of the main arguments for using AutoHotkey or AutoIt as oppose to C++, other scripting languages, Visual Basic, etc... is that they are shortcuts and easier ways to solve a problems or give the ability to add automation.