Vbscript 为WinHTTPRequest指定事件处理程序前缀时,WScript.CreateObject会使Windows脚本主机崩溃
根据WinHTTPRequest,它有四个事件处理程序,可以通过指定事件处理程序前缀来访问。不幸的是,这样做会导致Windows脚本主机崩溃 以下代码使Windows脚本主机崩溃:Vbscript 为WinHTTPRequest指定事件处理程序前缀时,WScript.CreateObject会使Windows脚本主机崩溃,vbscript,wsh,winhttp,windows-scripting,winhttprequest,Vbscript,Wsh,Winhttp,Windows Scripting,Winhttprequest,根据WinHTTPRequest,它有四个事件处理程序,可以通过指定事件处理程序前缀来访问。不幸的是,这样做会导致Windows脚本主机崩溃 以下代码使Windows脚本主机崩溃: Set oHTTP = WScript.CreateObject( "WinHttp.WinHttpRequest.5.1", "oHTTP_" ) 这段代码工作得很好: Set oHTTP = WScript.CreateObject( "WinHttp.WinHttpRequest.5.1" ) 想知道为什么
Set oHTTP = WScript.CreateObject( "WinHttp.WinHttpRequest.5.1", "oHTTP_" )
这段代码工作得很好:
Set oHTTP = WScript.CreateObject( "WinHttp.WinHttpRequest.5.1" )
想知道为什么吗?它在任何方面都不是规范的一部分。一厢情愿的编程很少奏效 创建并返回对自动化对象的引用 论据 服务器名 必需的。提供对象的应用程序的名称 字体名 必需的。要创建的对象的类型或类 位置 可选。要在其中创建对象的网络服务器的名称 如果您想制定自己的愿望规范,请查看是否可以在此规范中添加自己的参数 来自GetRef的帮助 返回对可绑定到事件的过程的引用 论据 反对 必需的。与事件关联的对象的名称 事件 必需的。要将函数绑定到的事件的名称 procname 必需的。包含与事件关联的子过程或函数过程名称的字符串
CreateObject和WScript.CreateObject之间存在差异。请注意,我指定了WScript.CreateObject。您可以在这里了解差异:第一个示例在Windows7x64上非常适合我。你说的“撞车”到底是什么意思?事件查看器中是否存在任何错误?你是如何运行脚本的?我在Windows10x64上也看到了这一点。它生成了一个C0000005 GPF。我在Windows XP的另一种语言中发现了另一个引用。所以,听起来这是WinHttp事件的问题。
CreateObject(servername.typename [, location])
Set object.eventname = GetRef(procname)