Сокрытие икнок рабочего стола
{
HWND hDesktopListView = NULL;
HWND hProgman = FindWindow(L"Progman", 0);
if (hProgman)
{
HWND hDesktop = FindWindowEx(hProgman, 0, L"SHELLDLL_DefView", 0);
if (hDesktop) hDesktopListView = FindWindowEx(hDesktop, 0, L"SysListView32", 0);
}
ShowWindow(hDesktopListView, (bShow?SW_SHOW:SW_HIDE));
}
и она работает, но почему-то не всегда. Бывает, что иконки не скрываются вообще, бывает что скроются, а обратно - ни-ни. Так вот, это проблема моей Винды, или эту функцию нужно как-то дополнить?
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
SendMessage(DesktopHandle, LVM_ARRANGE, LVA_ALIGNLEFT, 0);//Все ярлыки будут упорядочены по левому краю
Здесь ищется окно с заголовком ProgMan.
Далее, с помощью функции GetWindow, определяем дочернее окно.
После этого находим следующее дочернее окно.
Вот теперь мы получили указатель на системный объект класса SysListView32. Этот элемент как раз и содержит все иконки Рабочего стола.
Мы можем управлять ярлыками, посылая сообщения с помощью функции SendMessage.
"Из книги программирование на C++ глазами хакера, Михаил Фленов"
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
SendMessage(DesktopHandle, LVM_DELETEALLITEMS, 0, 0);
Перемещение ярлыков по Рабочему столу:
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
for (int i=0;i<200;i++)
{
SendMessage(DesktopHandle,LVM_SETITEMPOSITION,0,MAKELPARAM(10,i));
SendMessage(DesktopHandle,LVM_UPDATE,0,0);//Обновление иконки
Sleep(10);//Пауза в 10 мс
}
Изменение цвета текста:
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
SendMessage(DesktopHandle, LVM_SETITEMTEXT, 0,
(LPARAM) (COLORREF)0);//Последний параметр- это цвет
//Изменения будут видны только после перерисовки экрана!!!
Надеюсь что я вопрос понял правильно... :)
"Из книги программирование на C++ глазами хакера, Михаил Фленов"
Нашёл в Чаконе такую - весьма забавная книженция!
Хорошо её почитать - даёт представление о всяких тонкостях использования различных функций!!!
Хорошо её почитать - даёт представление о всяких тонкостях использования различных функций!!!
Я тоже думаю что это хорошая книга. Автор очень хорошо пишет, у меня две его книги :)
В Санкт-Петербурге я купил её за 275 руб + диск бесплатный с исходниками и программой ASPack.
"Рассмотрены нестандартные приёмы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточных программ и серьёзных сетевых приложений для диагностики сетей, управления различными сетевыми устройствами и просто при повседневном использования интернет-приложений."
Можно узнать, какая вторая книга. Просто мне очень понравилась "программирование на C++ глазами хакера", хотелось бы еще что-нибудь в этом роде почитать
Можно узнать, какая вторая книга. Просто мне очень понравилась "программирование на C++ глазами хакера", хотелось бы еще что-нибудь в этом роде почитать
Вторая книга - "DirectX и C++ искусство программирования"
В Санкт-Петербурге примерно стоит 245 руб.
"Графические эффекты в демонстрационных роликах
Пиксельные и вершинные шейдры
Оптимизация графики
2D и 3D-эффекты
Современные графические технологии"
Где-то видел книгу примерно с таким названием: "DirectX и Delphi искусство программирования"