一台机器上,无法用vbs脚本创建winsock对象,但是窗体中放入winsock控件,编译成exe却执行正常,为什么呢?

ykqlyy 2010-03-26 10:05:46
一台机器上,无法用vbs脚本创建winsock对象,但是窗体中放入winsock控件,编译成exe却执行正常,为什么呢?
这个脚本如下


Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress
MsgBox "Local IP=" & ws.localhostname


执行时失败,提示“类别未授权使用”
我重新注册winsock对象也不管用。
而且如果将winsock控件放到窗体中,编译为exe,则不报错,这也说明这台机器上winsock控件是注册的。

但是为何用脚本却无法创建呢?

应该都是基于 mswinsck.ocx 这个文件吧?
为何以控件的形式编译到exe中可以创建winsock对象可以,但是用vbs脚本就无法创建了呢?
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykqlyy 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiangsheng 的回复:]
ocx应该需要一个ActiveX容器,脚本引擎没有
[/Quote]
谢谢指教,可是我不明白,您说的activex容器是什么呢?
作用是什么呢?
ykqlyy 2010-03-27
  • 打赏
  • 举报
回复
Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress
MsgBox "Local IP=" & ws.localhostname
-------------------------------------------
以上这个脚本,要让它可以正常执行,机器上必须有什么呢?
现在的很多机器,没有装vb,
但是 mswinsck.ocx单单注册是不行的,还需要什么条件呢?

因为以上代码在安装了 vb 的机器上运行是正常的,所以不能运行这个代码的机器,一定是少了什么东西,但是少了什么东西呢?
蒋晟 2010-03-27
  • 打赏
  • 举报
回复
就是实现了一系列OLE接口的程序。一般ActiveX都假定自己在一个容器中,容器会激活控件、转发鼠标和键盘消息等等。
蒋晟 2010-03-27
  • 打赏
  • 举报
回复
ocx应该需要一个ActiveX容器,脚本引擎没有
xuggzu 2010-03-26
  • 打赏
  • 举报
回复

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧