![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Как получить раб. стол т.е его снимок без фонового рисунка только иконки ну и сами окна примеру ??
--------------------
Джедаи не пройдут.. |
|||
|
||||
Virtuals |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 4 Всего: 11 |
никак, рисунок загружен в окно рабочего стола DC=0;
ну если только отключить фоновой рисунок, скопировать изображение, включить рисунок ![]() |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Да ну ерунда, я ведь уверен, что способ есть
![]() Взять тот же RAdmin, PCAnywhere там ведь получение идёт частичное без фона, чем и разгружает траффик, вопрос как это можно реализовать ??? --------------------
Джедаи не пройдут.. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Может получает картинку рабочего стола и вычитает из нее рабочий стол, затем все что нечерное заливает белым, после чего делает операцию AND с исходной, тогда рабочий стол удалиться а все остальное останется на месте.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
попробуй поработать с ним, как с обычным ListView
-------------------- Обижено школьников: 8 |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Alexeis, bems вот это уже интересно поподробнее, плиз !
--------------------
Джедаи не пройдут.. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Путь к обоям можно найти тут
1) HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper Это всегда будет битмап с битностью цвета такой какая установлена в системе. 2) битовые операции над картинками осуществляет функция BitBlt, параметры операции устанавливаются последним параметром. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Так и что нам это даёт? т.е мы можем преобразовать битмап с меньшей битностью, но как сделать его монотонным ? или я что-то не так понял??
--------------------
Джедаи не пройдут.. |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 3 Всего: 18 |
Если суть в экономии трафика, и если нужны только иконки и окна, то можно просто составить список иконок, их мест, а также по дескрипторам окон составить запись всех контролов этих окон. Это, конечно, будет работать в случае, если окон не много. А так Alexeis прежложил, помоему очень неплохой вариант. Юзай BitBlt/TransparentBlt
![]() -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Согласен вариант очень неплохой только не могу реализовать, может поможете ??
--------------------
Джедаи не пройдут.. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Есть проблемы. Если исходная картинка для обоев была другого размера, то работать не будет, а сделать стретч так же как винда не получается, да и не получиться ведь в зависимости от версии метод сжатия/растяжения может меняться. Исходный формат не имеет значения, так как винда все равно конвертит его в BMP, а вот как бы найти ее кэшированую картинку... Ну впрочем можно проверять если картинка отличается от размеров рабочего стола, то не применять методику. Вот, а вот результирующая pngшка сжалась до 32кб. см. Атач. Это сообщение отредактировал(а) Alexeis - 7.8.2007, 11:52 Присоединённый файл ( Кол-во скачиваний: 28 ) ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Virtuals |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 4 Всего: 11 |
сам же себя и опровергаю // смотрим ЗЫ
о нашел нечто похожее, сам бился над проблемой получения окна скрытого другим, решение _+_+_+ function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall; implementation function PrintWindow; external user32 name 'PrintWindow'; +_+_+_+_ PrintWindow(findwindow('Progman',nil), PaintBox2.Canvas.Handle, 0); \\но именно с progmanom какието глюки ща расковыриваю функцию PrintWindow \\ ни разу не видел ее и в 2000 исходниках не находил ![]() она заставляет приложение отрисоватся в другом месте, (и иногда приложение забывает где правильно рисовать ![]() ЗЫ короче рисунок находится на DC=0 а иконки на окне 'Progman' (прозрачном) dash1 Это сообщение отредактировал(а) Virtuals - 7.8.2007, 19:07 |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Да блин в этом то и проблема тут ведь идёт попиксельное сравнение двух изображений
исходной картинки и раб. стола, но если размер результирующей picture не совпадает тут начинаются проблемы..... ![]() Щас тоже буду думать как оптимизировать это дело позже сообщу о результатах.... --------------------
Джедаи не пройдут.. |
|||
|
||||
php |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.2.2003 Репутация: нет Всего: 3 |
Да кстати тут ещё одну приколюху нашёл немного не затирается рисунок вокруг
надписей у иконок ![]() --------------------
Джедаи не пройдут.. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Ну тут проблема с альфа-каналом думаю, с одной стороны цвет отличается от картинки, с другой содержит ее часть, так что как-то так...
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |