一个工业软件的自动化,分为两部分,一部分是主程序,另一部分是软件的脚本
主程序的启动已经实现了许可限制,需要在软件的脚本(VBS)开发中也实现License控制
许可控制的思路
1.我用socket写了一个windows服务,用来提供License文件的解码与许可授权
2.主程序用TcpClient进行连接并获取模块授权,断开后终止所有模块授权
3.在工业软件的脚本(vbs)开发的功能中也需要去服务器获取License模块的授权,但是目前没有找到可以连接sockets的方法
4.打算用vb.net写一个dll然后让vbs去引用,在ExcelVBA中测试成功,在VBS中无法创建对象
Namespace zSockets
<ComClass(SocketClient.ClassId, SocketClient.InterfaceId, SocketClient.EventsId)> _
Public Class SocketClient
'Implements iSocketClient
#Region "COM GUID"
' 这些 GUID 提供此类的 COM 标识
' 及其 COM 接口。若更改它们,则现有的
' 客户端将不再能访问此类。
Public Const ClassId As String = "4942b316-6ebc-4ca6-8499-5a6dd07e9e9e"
Public Const InterfaceId As String = "d08ae6ff-aadd-4900-9510-abce13a0f8ec"
Public Const EventsId As String = "91c03c86-cc88-4ab9-931d-e03c8520f844"
#End Region
Private _ServerIP As String
Private _ServerPort As Integer
Private Client As TcpClient
Private br As BinaryReader
Private bw As BinaryWriter
Private _State As String
......
End Class
End Namespace
宿主WScript代码:
Set Socket = CreateObject("zSockets.SocketClient") (报错“系统找不到指定文件”)
宿主为第三方工业软件时,根本看不到我的类,只有一个命名空间
我尝试在dll中加入了接口定义,在宿主工业软件时,只能看到我的接口,但是接口都是虚函数,无法创建对象
希望能提供解决思路,谢谢
VBS中无法创建对象的问题解决了,原来是使用的WScript.exe的版本不对,我的操作系统是64位win10,但是注册表中使用的脚本解释器是System32里的,改到SysWow64里的WScript就可以了,但是在第三方工业软件的脚本里还是显示创建对象失败