Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Смена цвета окон в Windows 7 (и еще Audica 0.5.1=) Добавлено: 14.01.10 00:09  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
https://sourceforge.net/projects/audica/
HILIGHTS (0.4.0 -> 0.5.1):
- Поддержка обложек (из папки или ID3V2 тегов).
- Поиск по плейлисту, сортировка плейлистов.
- Улучшенная поддержка Unicode.
- Инфо-окно отображает информацию о композиции и громкость.
- Получение тегов OGG интернет-потоков.
- Визуализация: изменение цвета окон Windows Aero.
- Фиксы, увеличена стабильность.

Так вот. Сабж находится в файле modSpectrum.bas
Private Type WDM_COLORIZATION_PARAMS
    Color1 As Long
    Color2 As Long
    intensity As Long
    Unknown1 As Long
    Unknown2 As Long
    Unknown3 As Long
    Opaque As Long
End Type
Private Declare Sub WdmGetColorizationParameters Lib "dwmapi.dll" Alias "#127" (ByRef parameters As WDM_COLORIZATION_PARAMS)
Private Declare Sub WdmSetColorizationParameters Lib "dwmapi.dll" Alias "#131" (ByRef parameters As WDM_COLORIZATION_PARAMS, ByVal uUnknown As Long)
Dim p As WDM_COLORIZATION_PARAMS, special As Long, wdm_saved_color As Long, wdm_is_on As Boolean

Public Sub RestoreWDMColor()
    If wdm_is_on Then
        p.Color1 = special + wdm_saved_color
        p.Color2 = p.Color1
        WdmSetColorizationParameters p, 0
    End If
End Sub

Public Sub UnInitWDM()
    Call RestoreWDMColor
    wdm_is_on = False
End Sub

Public Sub InitWDM()
On Error GoTo 1:
    WdmGetColorizationParameters p
    special = Sgn(p.Color1) * (p.Color1 And &HFF000000)
    wdm_saved_color = p.Color1 And &HFFFFFF
    wdm_is_on = True
Exit Sub
1: qError "Cannot initializate WDM."
End Sub

Public Function WDMIsReady() As Boolean
On Error GoTo 1:
    Dim ret As WDM_COLORIZATION_PARAMS
    WdmGetColorizationParameters ret
    WDMIsReady = True
1:
End Function

WDMIsReady - доступно ли изменение цвета
InitWDM - считать текущие параметры цвета, запомнить старый цвет и параметр special
RestoreWDMColor - восстановить старый цвет
wdm_saved_color - старый цвет
special - 4ый байт Color1 - не разобрался как, но это связано с интенсивностью цвета, как и параметры intensity, Unknown1, Unknown2, Unknown3
Opaque - 1=без прозрачноти, 0=прозрачность
Color2 - опять же не ясно зачем, но всегда равен Color1

Установка нового цвета происходит так
p.Color1 = special + RGB(B, G, R)
p.Color2 = p.Color1
WdmSetColorizationParameters p, 0

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #1
Добавлено: 14.01.10 19:13
Программа, подбирающая цвет окон под текущий воллпайпер.
http://narod.ru/disk/16904756000/WDM_colorization.zip.html
Если переименовать файл hide то главное окно отображается.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам