QTP调用API实例集

题前:

QTP调用DLL(Extern.Declare函数参数介绍)
QTP拥有自己的.NET Factory接口,以调用.NET生成的DLL,也可以使用Extern.Declare来进行外部的DLL的访问。
  语法:
  Extern.Declare(RetType, MethodName, LibName, Alias [, ArgType(s)])
  参数说明:
  RetType: 方法返回值的类型。
  MethodName:调用DLL文件中的某个方法的方法名。
  LibName: DLL文件名。
  Alias: 别名,当别名为空时,方法名和别名一样(此参数通常为空)。
  ArgType(s): 传入的参数。

例子:
Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString    '后面两个micString为函数FindWindow函数的参数
Extern.Declare micLong, "SetWindowText", "user32.dll", "SetWindowTextA", micHwnd, micString
 

例1:运行一个 可执行文件文件
Extern.Declare micLong, "WinExec", "kernel32.dll", "WinExec", micString,micLong
Extern.WinExec "d:/1.exe ", 1

 

例2:Beep
Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong 
Extern.Beep 500
'它让我的机器在办公室里狂响不止!(不停的响暂不知如何中止,最好在虚拟机中试)

 

例3:QTP运行后锁键盘和鼠标。
Extern.Declare micLong, "BlockInput", "user32.dll", "BlockInput", micLong 
' Use the following statement to lock keyboard and mouse input at the
Extern.BlockInput 1 ' beginning of the test:
wait(5)
' Use the following statement to unlock keyboard and mouse input at the
Extern.BlockInput 0 ' end of the test:

 

以下示例使用 Extern.Declare 和 Extern.<已声明的方法> 方法更改记事本窗口的标题。

'声明 FindWindow 方法

Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString

'声明 SetWindowText 方法

Extern.Declare micLong, "SetWindowText", "user32.dll", "SetWindowTextA", micHwnd, micString

'获取记事本窗口的 HWND

hwnd = Extern.FindWindow("Notepad", vbNullString)

if hwnd = 0 then

MsgBox "找不到记事本窗口"

end if

'更改记事本窗口的标题

res = Extern.SetWindowText(hwnd, "hukai")

 

以下示例使用 GetPrivateProfileString 从外部 INI 文件中检索信息,并将该信息用于测试。注意,如果使用 micByRef 标志,则表示为输出参数。

Extern.Declare micInteger,"GetPrivateProfileStringA", "kernel32.dll","GetPrivateProfileStringA", micString, micString, micString, micString+micByRef, micInteger, micString

Dim key, i, key2

key = String(32, "-")

i = Extern.GetPrivateProfileStringA("WREnv","addons","xxx", key, 32, "wrun.ini")

key2 = Left(key,i)

msgbox key & ";" & key2 & ";" & CStr(i)

 

以下示例检查光标何时显示为沙漏。

extern.Declare micLong,"GetForegroundWindow","user32.dll","GetForegroundWindow"

extern.Declare micLong,"AttachThreadInput","user32.dll","AttachThreadInput",micLong,

micLong,micLong

extern.Declare micLong,"GetWindowThreadProcessId","user32.dll",

"GetWindowThreadProcessId",micLong,micLong

extern.Declare micLong,"GetCurrentThreadId","kernel32.dll","GetCurrentThreadId"

extern.Declare micLong,"GetCursor","user32.dll","GetCursor"

function get_cursor()

hwnd = extern.GetForegroundWindow()

pid = extern.GetWindowThreadProcessId(hWnd, NULL)

thread_id=extern.GetCurrentThreadId()

extern.AttachThreadInput pid,thread_id,True

get_cursor=extern.GetCursor()

extern.AttachThreadInput pid,thread_id,False

end function

Msgbox get_cursor()

FindWindow函数用于查找窗体  
函数原型
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
lpWindowName是要查找窗体的标题,即这里的“无标题 - 记事本”。
如果找到窗体,函数返回该窗体的句柄;如果找不到,函数返回空值或者零 。

句柄和窗口标题,若只知其中之一,""要用vbNullString表示

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值