FindWindow和FindWindowEx
函数原型:FindWindow(lpszClassName,lpszWindowName)
参数:lpszClassName--窗口类名;lpszWindowName--窗口标题
功能:查找窗口,未找到则返回NULL
SDK中
HWND hwnd = FindWindow(NULL, "计算器");
if(m_pWnd)
{
AfxMessageBox("找到了!");
::PostMessage(hwnd,WM_CLOSE,0,0);//强迫退出
}
MFC中
CWnd * m_pWnd = FindWindow(NULL, "计算器");
if(m_pWnd)
{
AfxMessageBox("找到了!");
::PostMessage(m_pWnd->m_hWnd,WM_CLOSE,0,0);//强迫退出
}
函数原型:HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
功能:查找子窗口或子控件,未找到则返回NULL
HWND h = FindWindow(NULL, "计算器" );
HWND m_hwnd = FindWindowEx(h, 0, "Button", "Ok" );
HWND m_hwnd = FindWindowEx(h,NULL,NULL,"Ok");
HWND m_hwnd = FindWindowEx(h,NULL,"Button",NULL);
SendMessage(m_hwnd, WM_KEYDOWN, 13, 0x011c0001 );
SendMessage(m_hwnd, WM_KEYDOWN, 13, 0x011c0001 );
SendMessage(m_hwnd, WM_KEYUP, 13, 0xc11c0001 );
其他函数
HWND GetNextWindow(HWND hWnd,UNIT wCmd)
功能:返回z序中的前一个或后一个窗口的句柄
返回值:如果函数成功,返回值是前一窗口(或后一窗口)的句柄。如果前后窗口不存在,则返回值为NULL。
BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam)
功能:枚举子窗体
参数:
注意:回调函数的返回值将会影响到这个API函数的行为。如果回调函数返回true,则枚举继续直到枚举完成;如果返回false,则将会中止枚举。
int GetClassName(HWND hWnd, LPTSTR IpClassName, int nMaxCount)
功能:获得指定窗口所属的类的类名
参数:
返回值:如果函数成功,返回值为拷贝到指定缓冲区的字符个数:如果函数失败,返回值为0。