GetDesktopWindow函数主要用来获取桌面窗口的句柄。下面就是这个函数的实现代码:
#001 HWND WINAPI
#002 GetDesktopWindow(VOID)
#003 {
#004 PWINDOW Wnd;
#005 HWND Ret = NULL;
#006
使用SEH机制来获取桌面窗口。
#007 _SEH2_TRY
#008 {
调函数GetThreadDesktopWnd来获取当前线程的桌面句柄。
#009 Wnd = GetThreadDesktopWnd();
#010 if (Wnd != NULL)
从窗口指针里获取这个窗口句柄。
#011 Ret = UserHMGetHandle(Wnd);
#012 }
#013 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
#014 {
#015 /* Do nothing */
#016 }
#017 _SEH2_END;
#018
#019 return Ret;
#020 }
GetThreadDesktopWnd函数:
#001 PWINDOW
#002 FASTCALL
#003 GetThreadDesktopWnd(VOID)
#004 {
通过函数GetThreadDesktopInfo获取桌面信息结构,然后再从结构里获取窗口句柄。
#005 PWINDOW Wnd = GetThreadDesktopInfo()->Wnd;
#006 if (Wnd != NULL)
#007 Wnd = DesktopPtrToUser(Wnd);
#008 return Wnd;
#009}
原文链接:https://www.f2er.com/react/308346.html