QTP引用外部dll的3種方法

2021-08-27 07:45:05 字數 1733 閱讀 4763

1、active dll

通過createobject(class)建立:

dim ws

set ws = createobject("wscript.shell")

ws.run "notepad.exe"

getobject([pathname] [, class])

引數pathname

可選項。字串,包含待檢索物件的檔案的完整路徑和名稱。如果省略 pathname 則必須有 class。

class

可選項。字串,物件的類。

引數必選項。字串,提供物件的應用程式名稱。

objectype

必選項。字串,要建立的物件的型別或類。

strcomputer = "."

set objwmiservice = getobject("winmgmts:\\" & strcomputer & "\root\cimv2")

set cpu =objwmiservice.execquery("select * from win32_processor")

for each item in cpu

cpu2=cpu2&"cpu:" & item.name

next

msgbox cpu2

2、win api dll

extern.declare(rettype, methodname, libname, alias [, argtype(s)])

引數說明:

rettype: 方法返回值的型別。

methodname:呼叫dll檔案中的某個方法的方法名。

libname: dll檔名。

alias: 別名,當別名為空時,方法名和別名一樣(此引數通常為空)。

argtype(s): 傳入的引數。

extern.declare miclong, "winexec", "kernel32.dll", "winexec", micstring,miclong

extern.winexec "c\test.exe ", test

3、.net api dll

dotnetfactory.createinstance(typename [,assembly] [,args])

typename 其實就是命名空間+class名

assembly 其實就是程式集位址,可以本地路徑,也可以是.net命名空間

args 其實就是class例項時建構函式的引數值

set mymsgbox = dotnetfactory.createinstance("system.windows.forms.messagebox","system.windows.forms")

mymsgbox.show "hello world ", "my custom message box"

set mymsgbox1 = dotnetfactory.createinstance("system.windows.forms.messagebox","d:\definedll.dll","title")

mymsgbox1.show "hello world ", "my custom message box"

ps:其中第1種和第3種都可以自定義dll來擴充,其中自定義第一種active dll後在使用前需要在系統中註冊一下【regsvr32 dllname】

QTP引用外部dll的3種方法

1 active dll 通過createobject class 建立 dim ws set ws createobject wscript.shell ws.run notepad.exe getobject pathname class 引數pathname 可選項。字串,包含待檢索物件的檔案...

C List引用型別轉殖的3種方法

前言 有時候我們想轉殖乙個list去做別程式設計客棧的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。下面話不多說了,來一起看看詳細的介紹吧 一 反射 publ...

DLL劫持,注入DLL的一種方法

先轉一篇文章 1.dll劫持,粗略整理了下,可以劫持的dll有 持續更新 lpk.dll usp10.dll msimg32.dll midimap.dll ksuser.dll comres.dll ddraw.dll 以lpk為例,在win7下由於lpk被加入knowndlls且該登錄檔值不可修...