[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] win10和11中相同com对象获得了不同结果

本帖最后由 jyswjjgdwtdtj 于 2024-10-12 19:23 编辑

在win10中
  1. $s=new-object -comobject htmlfile
  2. write $s.parentwindow.setinterval
复制代码


只显示
  1. int setInterval(variant,int,variant)#具体的忘了……
复制代码


而且setInterval在vbs中还不能用 没有效果
然而在win11中显示一大堆重载
  1. OverloadDefinitions
  2. -------------------
  3. int setInterval(string expression, int msec, [ref] System.Object language)
  4. int setInterval([ref] System.Object expression, int msec, [ref] System.Object language)
  5. int DispHTMLWindow2.setInterval([ref] System.Object expression, int msec, [ref] System.Object language)
  6. int IHTMLWindow2.setInterval(string expression, int msec, [ref] System.Object language)
  7. int IHTMLWindow3.setInterval([ref] System.Object expression, int msec, [ref] System.Object language)
复制代码


很好奇是怎么回事 微软理应不会更新这个ie7的com组件啊


win11里也不好使了
  1. set h=createobject("htmlfile")
  2. h.parentwindow.settimeout getref("m"),1
  3. sub m
  4. msgbox 1
  5. end sub
复制代码



我记得大概一个多月前还是好用的
还是我写脚本的时候犯了什么错误?
你好

com对应的dll变成edge相关的文件了??? 试试去注册表里看看

TOP

回复 2# Five66


   应该不是 edge的相关dll都带Microsoft字眼 在这edge应该不会使用com
用visualstudio的反编译只能找到
int setInterval(string expression, int msec, [ref] System.Object language)
这个方法 看上去只能接受字符串 而非一个委托,或者说事件,在或者说回调函数地址
所以vbs里运行不了
你好

TOP

可以用啊,有事件需要等待啊.
  1. set h=createobject("htmlfile")
  2. h.parentwindow.settimeout getref("m"),1000
  3. sub m
  4. msgbox 1
  5. end sub
  6. WScript.Sleep 5000
  7. msgbox "end"
复制代码
微信:flashercs
QQ:49908356

TOP

回复 4# flashercs


   哦 是我的问题 当vbs的主进程跑完之后 进程会直接退出 不会等到settimeout执行
你好

TOP

返回列表