vbs调用标准API,显示控件显示窗体
用一个方法可以直接让PY显示任意控件,VBS也可以做界面
VBS就可以当软件用了,支持API调用(Findwindow),支持加载控件,他本身就支持调用对象creatobject,那vbs不是万能的了嘛?
大家这方面有没有研究过?
---------------------------
Windows Script Host
错误: 不能在该主机应用程序中从 ActiveX DLL、ActiveX 控件或“属性页”显示非模式窗体。
代码: 800A0196
源: AvbsForm
正解:
SysWOW64下的wscript为什么是32位程序
C:\Windows\SysWOW64\wscript.exe,这个是32位的
C:\Windows\System32的才是64位的
VBS文件双击默认是用64位打开,所以调用VB6写的32位COM DLL就错了。
如果用其他语言写的64位ActiveXDLL,那就不会出错了。
Program Files (x86)
Program Files 这就不一样了,上面的是32位的程序。
SysWOW64不等于(x64)
==================
错误: 无法创建名为“AvbsForm.Class1”的对象。
试了2小时终于成功了,可以用VBS创建窗体了
C:\Windows\SysWOW64\wscript.exe
C:\Windows\System32和SysWOW64各有一个wscript.exe,默认好像是用System32打开VBS所以失败了
把64位目录下的wscript.exe复制过来,把VBS文件拖上去就可以运行了
---------------------------
Windows Script Host
---------------------------
脚本: E:\01DATA\001编程中心\001程序工程\003测试学习代码\1667vbs调用标准API,显示控件显示窗体\001ComDll_新建窗体,显示窗体\v03\让VBS显示窗体02.vbs
行: 2
字符: 1
错误: 无法创建名为“AvbsForm.Class1”的对象。
代码: 80040154
源: WScript.CreateObject
---------------------------
确定
---------------------------
---------------------------
Windows Script Host
---------------------------
脚本: D:\Temp\让VBS显示窗体02.vbs
行: 2
字符: 1
错误: 无法找到名为“AvbsForm.Class1”的 automation 类。
代码: 80020009
源: WScript.CreateObject
---------------------------
确定
---------------------------
C:\Windows\SysWOW64\那个目录,就是64位系统放32位组件的。
这是“别人的规则”,哪有那么多“为什么”……
你只需要知道、遵守,就行了。