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);
}
}