文章目录
如果获取当前进程窗口句柄,然后再调用窗口下的各类功能函数。
1.EnumWindows函数
- 1.EnumWindows函数
- 2.GetCurrentProcessId函数
原型:BOOL EnumWindows。 该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。
2.GetCurrentProcessId函数功能:获取当前进程一个唯一的标识符。
#include
typedef struct tagWNDINFO
{
DWORD dwProcessId;
HWND hWnd;
} WNDINFO, *LPWNDINFO;
//枚举窗口过程
static BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if (dwProcessId == pInfo->dwProcessId)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}
//获取主窗口句柄
static HWND GetProcessMainWnd()
{
DWORD dwProcessId=::GetCurrentProcessId();
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(EnumProc, (LPARAM)&wi);
return wi.hWnd;
}