本帖最后由 jyswjjgdwtdtj 于 2023-6-23 15:59 编辑
自问自答一下
一下只是我的猜测奥 毕竟网上没有相关资料 只能靠着ai强大的搜索能力管中窥豹一下
getobject格式应当为- set obj=getobject("[协议名]:[文件名/progid/clsid……]","[progid]")
复制代码 协议名可以不填写 则会自动识别 如果是文件则是file:
第二个参数progid更像是打开方式 有的com组件支持这么"打开" 比如word.application
所以getobject("","word.application")的原理就是获取一个不存在的文件 用word打开 进而达成了获取word的目的
new协议的作用是创建新的组件对象
new:不带{},带-的clsid/progid
clsid协议 clsid:带{}-的clsid 是对已被实例化的com组件的引用
file,http,ftp……是对本地 互联网文件,服务的引用 不知道怎么用
script似乎是用来获取未注册的wscript com组件 就是sct,wsc文件 ai死说可以引用vbs文件 还能获取到全局作用域下的函数 这是不对的
wsc在网上或本地都是可以的
给个例子
1.wsc- <?XML version="1.0"?>
- <scriptlet>
- <registration
- description="Component"
- progid="Component.TESTCB"
- version="1.00"
- classid="{20002222-0000-0000-0000-000000000002}"
- >
- </registration>
-
- <public>
- <method name="exec">
- </method>
- </public>
- <script language="JScript">
- <![CDATA[
- function exec(){
- new ActiveXObject('WScript.Shell').Run('calc.exe');
- }
- ]]>
- </script>
- </scriptlet>
复制代码 1.vbs- set a=getobject("script:[1.wsc所在的文件夹 自己填写]1.wsc")
- a.exec()
复制代码 winmgmts:就不说了 这里我最不懂wmi |