|
看过了,不就是枚举窗口,然后利用其窗口句柄或者窗口标题,文本长度和类名,然后判断一下..'
不过不知道你做这些的主要目的是什么.
我不是用VBS写,但用VC倒是写过
BOOL CALLBACK FindFunc(HWND hwnd,LPARAM lParam)
{
char szName[255];
char szText[255];
::GetClassName(hwnd,szName,255);
::GetWindowText(hwnd,szText,255);
if((strcmp(szName,g_szClassName.GetBuffer(0)) == 0)&&(strcmp(szText,g_szCaption.GetBuffer(0)) == 0))
{
if (g_dwProcessID != NULL)
{
DWORD PID;
DWORD tid = GetWindowThreadProcessId(hwnd, &PID);
if (PID == g_dwProcessID)
{
g_FindHandle = hwnd;
return false;
}else
{
return true;
}
}else
{
g_FindHandle = hwnd;
return false;
}
}
return true;
}
调用
::EnumWindows(FindFunc,0);
::EnumChildWindows((HWND)hWnd,FindFunc,0); //枚举hWnd句柄指向的窗口下的所有子窗口
当然,我不使用QTP去引用系统的API,我把API写到DLL里给VBS调用. |
|