Newsgroup: it.comp.appl.access
Titolo: API - Forzare il tema di Windows

Ciao a tutti,
stavo spulciando la lista delle Api possibili, ma non sono riuscito a
trovare quella che forza un tema di windows (nel mio caso Xp grigio) e dopo
riabilita quello precedente.
Mi date un indizio?
Tks
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

MA ha scritto:

Non sono certo di aver capito correttamente, ma puoi vedere questa:
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As
Long) As Long
Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal
nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
Parameter Information
· cElements
Specifies the number of display elements in the array pointed to by the
lpaElements parameter.
· lpaElements
Points to an array of integers that specify the display elements to be
changed. For a list of display elements, see the GetSysColor function.
· lpaRgbValues
Points to an array of unsigned long integers that contains the new red,
green, blue (RGB) color value for each display element in the array
pointed to by the lpaElements parameter.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call GetLastError.
I colori principali sono da 0÷19, quindi, salvi i colori prima di
toccarli:
Dim SavedColors(19) As Long, IndexArray(19) As Long, NewColors(19) As
Long
   Dim i As Integer
    ' Salva i colori correnti:
    For i = 0 To 19
        SavedColors(i) = GetSysColor(i)
    Next i
    ' Cambia tutti i colori degli oggetti
    'in questo caso con una sequenza Random nel tuo caso inserirai il
colore
    ' che vuoi:
    For i = 0 To 19
        Randomize Timer
        NewColors(i) = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
        IndexArray(i) = i
    Next i
    ' Applica il colore
    SetSysColors 20, IndexArray(0), NewColors(0)
    ' Ripristina ricaricando i colori di sistema salvati
    SetSysColors 19, IndexArray(0), SavedColors(0)
L'elenco degli indici relativi al colore sono questi come vedi da
0÷19:
Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
Const COLOR_MENU = 4 'Menu
Const COLOR_WINDOW = 5 'Windows background
Const COLOR_WINDOWFRAME = 6 'Window frame
Const COLOR_MENUTEXT = 7 'Window Text
Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
Const COLOR_CAPTIONTEXT = 9 'Text in window caption
Const COLOR_ACTIVEBORDER = 10 'Border of active window
Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
Const COLOR_HIGHLIGHT = 13 'Selected item background
Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
Const COLOR_BTNFACE = 15 'Button
Const COLOR_BTNSHADOW = 16 '3D shading of button
Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
Const COLOR_BTNTEXT = 18 'Button text
Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
Se ne vuoi cambiare solo 1 dovrai modificare l'Array, o meglio il suo
dimensionamento...
HO capito bene...?
@Alex

 @Alex
Grazie Alex della risposta.
Allora quello ce mi piacerebbe fare e forzare l'applicazione del tema
Se vai nelle proprietà del desktop ha la possibilità di crearti un file Tema
da applicare a windows.
Puo anche salvarlo se ti va e clickare per applicarlo
Io avrei scelto Xp Grigio.
Vorrei che all'apertura del db forzasse quella visualizzazione.
Va bene questa Api?
Dove trovo documentazione per cambiarne i parametri?
Ancora tks



Secondo me va bene quasta funzione, la documentazione la trovi su
Allapi.net, ma
in sostanza è quello che ti ho scritto io, non c'è di più anche
perchè è tutto li...!
Per forzare il cambiamento su AutoExec salvi le impostazioni di
sistema(in un file INI o nel Registry), e carichi sempre dall'INI o dal
Registry quelle che hai previsto...!
Su chiusura dell'applicativo(ed a questo punto devi sfruttare la Form
Hidden per evitare scocciature in caso di Krash)...
@Alex


Grazie Alex,
in pratica per avere quello che voglio mi basta copiare i valori RGB del
tema di Windows xp modificato.
Sapessi che cosa mi era uscito con quei valori Random
ROTFL
Una cosa Fucsia orrenda, Pablito si sarebbe rivoltato nel letto!!!
p.s. a proposito per qualche giorno Pablito è off line, ma saluta tutti


 Info:  
www.donkarl.com/it
Bene, saluta Maurizio anche da parte mia.
@Alex