返回列表 发帖

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

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

在win10中
$s=new-object -comobject htmlfile
write $s.parentwindow.setintervalCOPY


只显示
int setInterval(variant,int,variant)#具体的忘了……COPY


而且setInterval在vbs中还不能用 没有效果
然而在win11中显示一大堆重载
OverloadDefinitions
-------------------
int setInterval(string expression, int msec, [ref] System.Object language)
int setInterval([ref] System.Object expression, int msec, [ref] System.Object language)
int DispHTMLWindow2.setInterval([ref] System.Object expression, int msec, [ref] System.Object language)
int IHTMLWindow2.setInterval(string expression, int msec, [ref] System.Object language)
int IHTMLWindow3.setInterval([ref] System.Object expression, int msec, [ref] System.Object language)COPY


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


win11里也不好使了
set h=createobject("htmlfile")
h.parentwindow.settimeout getref("m"),1
sub m
msgbox 1
end subCOPY



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

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

TOP

回复 2# Five66


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

TOP

可以用啊,有事件需要等待啊.
set h=createobject("htmlfile")
h.parentwindow.settimeout getref("m"),1000
sub m
msgbox 1
end sub
WScript.Sleep 5000
msgbox "end"COPY
微信:flashercs
QQ:49908356

TOP

回复 4# flashercs


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

TOP

返回列表