|
windows从98开始提倡的应用程序支持COM对象自动化模型,感觉很宏大。
用对象自动化模型,允许其他程序控制某个程序,只要用支持创建对象的语言都能支持这种程序操作。并且不用第三方的库,关键还能自带文档
举个例子,用windows的PowerSHell ISE控制excel应用程序,powershell ISE从Win7开始就自带了。
敲入$excel = New-Object -ComObject Excel.Application
然后再$excel回车,
好家伙,直接列出了excle的各种属性、方法。里面更多的子对象的属性和方法,也都可以在ISE中显示。
这些文档不是powershell的,也不是excel将帮助文件插入到powershell的帮助文件里面的。是使用微软的COM编程模型必须要支持的,直接暴露给外部程序他们的属性和控制方法,以便外部程序控制他来操作。
整个windows自带的管理组件(例如组策略、网络设置,防火墙等)都支持COM对象控制模式,都能用COM方式控制它进行自动化操作、设置。
好像LINUX没有这种自动化操作,有也只是支持控制程序的"外部"操作,但对于程序的"内部"操作没法实现控制吧。
windows经常这么多bug,是不是也是这个原因?因为支持COM自动化的话,就必须要进程间的操作,有时候接近于类似内存直接操作(例如控制对象的属性读写)。 |
|