Как работать с элементами рабочего стола на C++. рабочий стол и все его элементы, кнопки, панели, ярлыки, часы — всё это формы и как все формы они имеют заголовки, и прочие параметры присущие обычным окнам. Для поиска и работы с этими элементами необходимо знать их названия, чтобы найти хэндлы.
Shell_TrayWnd — Панелька внизу
Button, start — Кнопка пуск
ReBarWindow32 — Панель левее кнопки пуск
ToolbarWindow32. Quick Launch — Быстрый запуск
MSTaskSwWClass — Панель, там где минимизированные окна и т.п.
TrayNotifyWnd — Напоминалка и Весь трэй
Button — Баттон для показа скрытых иконок в ХР
SysPager — Эээ, сами иконки прог в систрее
TrayClockWClass — Часики
В примере ниже программа каждую секунду будет последовательно скрывать и показывать все объекты на рабочем столе :)
#include <windows.h>
#define iMax 9int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{HWND hWnd[iMax];
ZeroMemory(&hWnd, sizeof(HWND)*iMax);hWnd[0] = FindWindow(«Shell_TrayWnd», NULL); // Панелька внизу
hWnd[1] = FindWindowEx(hWnd[0], NULL, «Button», «start»); // Кнопка пуск
hWnd[2] = FindWindowEx(hWnd[0], NULL, «ReBarWindow32», NULL); // Панель левее кнопки пуск
hWnd[3] = FindWindowEx(hWnd[2], NULL, «ToolbarWindow32», «Quick Launch»); // Quick Launch
hWnd[4] = FindWindowEx(hWnd[2], NULL, «MSTaskSwWClass», NULL); // Панель, там где минимизированные окна и т.п.
hWnd[5] = FindWindowEx(hWnd[0], NULL, «TrayNotifyWnd», NULL); // Весь трэй
hWnd[6] = FindWindowEx(hWnd[5], NULL, «Button», NULL); // Баттон для показа скрытых иконок в ХР
hWnd[7] = FindWindowEx(hWnd[5], NULL, «SysPager», NULL); // Эээ, сами иконки прог в систрее
hWnd[8] = FindWindowEx(hWnd[5], NULL, «TrayClockWClass», NULL); // Часикиfor (int ii = 0; ii < iMax; ii++)
{
if (!hWnd[ii]) continue;
ShowWindow(hWnd[ii], SW_HIDE);
Sleep(2000);
ShowWindow(hWnd[ii], SW_SHOW);
if (ii < iMax — 1)
Sleep(1000);
}
return 1;
}