本帖最后由 easefull 于 2011-5-2 11:27 编辑
已知对象句柄,查询该对象的属性的方法二:
例子,获取IE的相关文档对象属性.#include <IE.au3>
$oIE = _IECreate ("http://www.126.com")
$oDoc = _IEDocGetObj ($oIE)
$sResult = ObjName($oDoc, 2)
ClipPut($sResult)
MsgBox(0, "对象描述", $sResult)
---------------------------------------------------------------
ObjName查询结果:
ObjName($oDoc, 1) DispHTMLDocument
ObjName($oDoc, 2) HTML Document
ObjName($oDoc, 3) htmlfile
ObjName($oDoc, 4) %SystemRoot%\system32\mshtml.dll
ObjName($oDoc, 5) Chr(00)
---------------------------------------------------------------
注册表搜索"HTML Document"发现
[HKEY_CLASSES_ROOT\htmlfile]
@="HTML Document"
得到:
[HKEY_CLASSES_ROOT\htmlfile\CLSID]
@={25336920-03F9-11cf-8FD0-00AA00686F13}
---------------------------------------------------------------
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11cf-8FD0-00AA00686F13}]
此为对象的显示名称@=HTML Document
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11cf-8FD0-00AA00686F13}\ProgID]
ObjName($oDoc, 3)和这个值相同,但并不是取于此键值@=htmlfile
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11cf-8FD0-00AA00686F13}\InProcServer32]
和ObjName($oDoc, 4)和这个值相同,但并不是取于此键值@=%SystemRoot%\system32\mshtml.dll
---------------------------------------------------------------
OLEVIEW查询操作:
打开oleview.exe -> All Objects -> HTML Document
右键"IDispatch" -> "view
---------------------------------------------------------------
注:
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11cf-8FD0-00AA00686F13}\ProgID]
[HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11cf-8FD0-00AA00686F13}\InProcServer32]
这两个键的@值和ObjName($oDoc, 3)、ObjName($oDoc, 4)的值相同,但ObjName并不是从这两个键值获取的信息.
判断根据:对象"Shell Automation Service"(详见方法一)也存在这两个键值,但ObjName获取3.4却返回空值. |