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)])
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
micLong,micLong
extern.Declare micLong,"GetWindowThreadProcessId","user32.dll",
"GetWindowThreadProcessId",micLong,micLong
"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()
إرسال تعليق