Windows 服务中取得桌面窗口句柄

VOID WINAPI MyService(DWORD dwArgc, LPTSTR * lpArgv)
{
HWINSTA hWinSta = OpenWindowStation(_T("WinSta0"), TRUE, WINSTA_ALL_ACCESS);
if (hWinSta)
{
SetProcessWindowStation(hWinSta);

HDESK hDesk = OpenDesktop(L"Default", DF_ALLOWOTHERACCOUNTHOOK, TRUE, GENERIC_ALL);
if (hDesk)
{
SetThreadDesktop(hDesk);

HWND hWnd = NULL;

while (hWnd = FindWindowEx(NULL, hWnd, NULL, NULL))
{
if (IsWindowVisible(hWnd))
{
// ...
}
}

CloseDesktop(hDesk);
}

CloseWindowStation(hWinSta);
}
}

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注