Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сокрытие икнок рабочего стола

34K
31 января 2008 года
aspenleaf
4 / / 22.01.2008
Где-то подсмотрел такую функцию:

Код:
void ShowDesktopIcons(bool bShow)
{
    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));
}


и она работает, но почему-то не всегда. Бывает, что иконки не скрываются вообще, бывает что скроются, а обратно - ни-ни. Так вот, это проблема моей Винды, или эту функцию нужно как-то дополнить?
24K
15 февраля 2008 года
Mixalov_Aleksandr
40 / / 13.01.2008
HWND DesktopHandle;
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++ глазами хакера, Михаил Фленов"
24K
18 февраля 2008 года
Mixalov_Aleksandr
40 / / 13.01.2008
Удаление всех элементов с Рабочего стола:
 
Код:
HWND DesktopHandle;
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
SendMessage(DesktopHandle, LVM_DELETEALLITEMS, 0, 0);


Перемещение ярлыков по Рабочему столу:
 
Код:
HWND DesktopHandle;
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 мс
}


Изменение цвета текста:
 
Код:
HWND DesktopHandle;
DesktopHandle = FindWindow("ProgMan", 0);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
DesktopHandle = GetWindow(DesktopHandle, GW_CHILD);
SendMessage(DesktopHandle, LVM_SETITEMTEXT, 0,
                   (LPARAM) (COLORREF)0);//Последний параметр- это цвет
//Изменения будут видны только после перерисовки экрана!!!


Надеюсь что я вопрос понял правильно... :)
367
20 февраля 2008 года
Meatcoins
303 / / 18.01.2006
Цитата:
Мы можем управлять ярлыками, посылая сообщения с помощью функции SendMessage.
"Из книги программирование на C++ глазами хакера, Михаил Фленов"


Нашёл в Чаконе такую - весьма забавная книженция!
Хорошо её почитать - даёт представление о всяких тонкостях использования различных функций!!!

24K
21 февраля 2008 года
Mixalov_Aleksandr
40 / / 13.01.2008
Цитата: Meatcoins
Нашёл в Чаконе такую - весьма забавная книженция!
Хорошо её почитать - даёт представление о всяких тонкостях использования различных функций!!!


Я тоже думаю что это хорошая книга. Автор очень хорошо пишет, у меня две его книги :)
В Санкт-Петербурге я купил её за 275 руб + диск бесплатный с исходниками и программой ASPack.
"Рассмотрены нестандартные приёмы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточных программ и серьёзных сетевых приложений для диагностики сетей, управления различными сетевыми устройствами и просто при повседневном использования интернет-приложений."

26K
21 февраля 2008 года
† m@k$ †
18 / / 04.01.2008
[QUOTE]Автор очень хорошо пишет, у меня две его книги /[QUOTE]
Можно узнать, какая вторая книга. Просто мне очень понравилась "программирование на C++ глазами хакера", хотелось бы еще что-нибудь в этом роде почитать
24K
21 февраля 2008 года
Mixalov_Aleksandr
40 / / 13.01.2008
Цитата:

Можно узнать, какая вторая книга. Просто мне очень понравилась "программирование на C++ глазами хакера", хотелось бы еще что-нибудь в этом роде почитать


Вторая книга - "DirectX и C++ искусство программирования"
В Санкт-Петербурге примерно стоит 245 руб.
"Графические эффекты в демонстрационных роликах
Пиксельные и вершинные шейдры
Оптимизация графики
2D и 3D-эффекты
Современные графические технологии"

Где-то видел книгу примерно с таким названием: "DirectX и Delphi искусство программирования"

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог