gto250 发表于 2013-5-28 23:23:38

关于AutoitObject的一个问题

这两天在学习Ward大神的au3内置fasm汇编的代码。
其中一个功能很令人感兴趣,就是将fasm做成object的形式,然后可以用ObjGet("AutoIt.FASM")的形式来调用。这个代码是用AutoitObject这个文件实现的。

既然能用ObjGet的形式来调用au3的代码,那就是表示可以用js或者vbs写代码来调用au3写的程序了
那就表示我们也可以用全新的方式来制作excel插件,而不用excel的udf来实现au3操作excel了。
可以在excel中写代码,au3写界面,因为excel vba画出来的窗体既难看,功能也不强,而vba代码写在excel中,比au3直接操作excel的速度要快多了。

例如:au3写的界面中有个按钮控件,点击按钮,就能运行excel中的宏。
当然了,不是在au3中使用
$obj=ObjGet("", "excel.Application")
$obj.Application.run(宏)
这样的方式

而是
将au3程序写成一个AutoIt.window的类
然后在excel中使用ObjGet("AutoIt.window")获取au3的类 ,进行交互
当在au3程序的窗体中点击按钮控件时,在excel中直接就运行宏


思考到这里,就卡在一个难题上,就是怎么在excel vba代码中获得au3界面的控件点击信息??
是在au3中写个事件的类,然后再excel中调用这个事件,不断检测是否在au3的界面中点击了按钮,还是另外的方法。

望有人解惑
页: [1]
查看完整版本: 关于AutoitObject的一个问题