QTP Extern Objects

QTP object identification and the object properties for Automation testing :

Description

Declares references to external procedures in a dynamic-link library (DLL).

After you use the Declare method for a method, you can use the Extern object to call the declared method.

Syntax

Extern.Declare(RetType, MethodName, LibName, Alias [, ArgType(s)])


Argument

Type

Description

RetType

String

Data type of the value returned by the method. For available data types, see Declare Data Types.

MethodName

String

Any valid procedure name.

LibName

String

Name of the DLL or code resource that contains the declared procedure.

Alias

String

Name of the procedure in the DLL or code resource.

Note: DLL entry points are case sensitive.

Note: If Alias is an empty string, MethodName is used as the Alias.

ArgType(s)

String

A list of data types representing the data types of the arguments that are passed to the procedure when it is called. For available data types, see Declare Data Types.

Note: For out arguments, use the micByRef flag.

Example

The following example uses the Extern.Declare and Extern. methods to change the title of the Notepad window.

'Declare FindWindow method

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

'Declare SetWindowText method

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

'Get HWND of the Notepad window

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

if hwnd = 0 then

MsgBox "Notepad window not found"

end if

'Change the title of the notepad window

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

The following example retrieves information from an external INI file using GetPrivateProfileString, and uses it in the test. Note the use of the micByRef flag to indicate the out argument.

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)

The following example checks when the cursor is displayed as an hour glass.

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()

0 comments:

Post a Comment