|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME) [ Divers / General ] (copyrightx)
Informations & options pour cette discussion
mercredi 8 novembre 2006 à 12:57:27 |
DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
Bonjour à tous,
J'aimerais savoir s'il existe un moyen (avec ou sans UxTheme.dll) de déterminer quel thème de Windows est actif. Si il s'agit du thème "Blue Theme", la fonction (que je vais créer) renverra 0, pour "Olive Theme" elle renverra 1, pour "Silver Theme" elle renverra 2 et enfin si il s'agit d'un autre thème, elle renverra -1. Il faut juste qu'elle puisse différencier les trois thèmes Windows par défaut.
Merci pour votre aide, Copyrightx.
|
|
|
mercredi 8 novembre 2006 à 20:32:51 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

ShareVB
|
salut, IsThemeActive et GetCurrentThemeName ShareVB
|
|
|
jeudi 9 novembre 2006 à 10:08:19 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
Bonjour ShareVB,
Un petit exemple de code serait le bienvenue ...
Copyrightx
|
|
|
jeudi 9 novembre 2006 à 14:33:41 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
J'ai trouvé ça sur le forum de Microsoft (www.forums.microsoft.com) :
Private Declare Function IsThemeActiveAPI Lib "uxtheme.dll" Alias "IsThemeActive" () As Boolean
Public Function GetThemeActive() As Boolean
isAct = IsThemeActiveAPI() If isAct = True Then GetThemeActive = True Else GetThemeActive = False End If
End Function
Sub Main()
Dim isThemed As Boolean isThemed = GetThemeActive MsgBox isThemed
End Sub
Le problème c'est que ça ne vérifie que si le thème est actif ou pas ...  Je continue les recherches ...
|
|
|
dimanche 12 novembre 2006 à 14:52:26 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

ShareVB
|
salut,
désolé pour la latence...
Option Explicit
Private Declare Function IsThemeActiveAPI Lib "uxtheme.dll" Alias "IsThemeActive" () As Boolean
Private Declare Function GetCurrentThemeName Lib "uxtheme.dll" ( _ ByVal pszThemeFileName As Long, _ ByVal dwMaxNameChars As Long, _ ByVal pszColorBuff As Long, _ ByVal cchMaxColorChars As Long, _ ByVal pszSizeBuff As Long, _ ByVal cchMaxSizeChars As Long _ ) As Long
Public Function GetActiveThemeName() As String If (IsThemeActiveAPI()) Then Dim szThemeFileName As String, szColorBuff As String, szSizeBuff As String szThemeFileName = Space(256) szColorBuff = Space(256) szSizeBuff = Space(256) GetCurrentThemeName StrPtr(szThemeFileName), 256, StrPtr(szColorBuff), 256, StrPtr(szSizeBuff), 256 GetActiveThemeName = Mid$(szThemeFileName, InStrRev(szThemeFileName, "\") + 1) GetActiveThemeName = Mid$(GetActiveThemeName, 1, InStr(GetActiveThemeName, ".") - 1) Else GetActiveThemeName = vbNullString End If End Function
Sub main() MsgBox GetActiveThemeName End Sub
ShareVB
|
|
|
lundi 13 novembre 2006 à 13:09:31 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
Merci pour le code ShareVB, je teste et je te répond le plus vite possible ... 
Copyrightx
|
|
|
lundi 20 novembre 2006 à 13:16:33 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
Bonjour,
Tout d'abord et ce, avant les formalités, merci pour le code ShareVB.
Ce dernier est très complêt car la fonction GetActiveThemeName retourne bien le nom du thème en cours, mais problème ...
Le fichier de thème Windows XP par défaut s'appelle "Luna". La fonction GetActiveThemeName renvoie donc la chaîne de caractère "Luna" mais cependant, ne permet pas de faire la différence entre le style BLUE, OLIVE et SILVER. Ce code ne répond donc qu'à la moitié de la question ...
Y a-t-il une fonction API qui permet d'obtenir le nom du style actif à partir du thème passé en paramêtre pour ainsi renvoyer, à partir de "Luna" (ou même sans passer de paramêtres), le style actif : BLUE ou OLIVE ou SILVER ?
Copyrightx
|
|
|
lundi 20 novembre 2006 à 13:38:39 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

ShareVB
|
salut,
en fait, c'est le deuxième paramètre de l'api...seulement, les noms sont plutôt bizarre NormalColor = bleu, HomeStead = olive, Metallic = silver...
Option Explicit
Private Declare Function IsThemeActiveAPI Lib "uxtheme.dll" Alias "IsThemeActive" () As Boolean
Private Declare Function GetCurrentThemeName Lib "uxtheme.dll" ( _ ByVal pszThemeFileName As Long, _ ByVal dwMaxNameChars As Long, _ ByVal pszColorBuff As Long, _ ByVal cchMaxColorChars As Long, _ ByVal pszSizeBuff As Long, _ ByVal cchMaxSizeChars As Long _ ) As Long
Public Function GetActiveThemeName() As String If (IsThemeActiveAPI()) Then Dim szThemeFileName As String, szColorBuff As String, szSizeBuff As String szThemeFileName = Space(256) szColorBuff = Space(256) szSizeBuff = Space(256) GetCurrentThemeName StrPtr(szThemeFileName), 256, StrPtr(szColorBuff), 256, StrPtr(szSizeBuff), 256 GetActiveThemeName = Mid$(szThemeFileName, InStrRev(szThemeFileName, "\") + 1) GetActiveThemeName = Mid$(GetActiveThemeName, 1, InStr(GetActiveThemeName, ".") - 1) Else GetActiveThemeName = vbNullString End If End Function
Public Function GetActiveThemeColor() As String If (IsThemeActiveAPI()) Then Dim szThemeFileName As String, szColorBuff As String, szSizeBuff As String szThemeFileName = Space(256) szColorBuff = Space(256) szSizeBuff = Space(256) GetCurrentThemeName StrPtr(szThemeFileName), 256, StrPtr(szColorBuff), 256, StrPtr(szSizeBuff), 256 GetActiveThemeColor = Mid$(szColorBuff, 1, InStr(szColorBuff, vbNullChar) - 1) Else GetActiveThemeColor = vbNullString End If End Function
Public Function GetActiveThemeSize() As String If (IsThemeActiveAPI()) Then Dim szThemeFileName As String, szColorBuff As String, szSizeBuff As String szThemeFileName = Space(256) szColorBuff = Space(256) szSizeBuff = Space(256) GetCurrentThemeName StrPtr(szThemeFileName), 256, StrPtr(szColorBuff), 256, StrPtr(szSizeBuff), 256 GetActiveThemeSize = Mid$(szSizeBuff, 1, InStr(szSizeBuff, vbNullChar) - 1) Else GetActiveThemeSize = vbNullString End If End Function
Sub main() MsgBox GetActiveThemeName & "(" & GetActiveThemeColor & ") (" & GetActiveThemeSize & ")" End Sub
ShareVB
|
|
|
lundi 20 novembre 2006 à 13:49:43 |
Re : DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)

copyrightx
|
Plutôt rapide les réponses sur le forum : c'est pas en mal !!!
Mais je crois que pour toi rapidité rime avec productivité ! Encore merci pour le code !
Je teste et je répond le plus vite possible pour confirmer.
Copyrightx
|
|
|
Cette discussion est classé dans : actif, theme, blue, renverra, olive
Répondre à ce message
Sujets en rapport avec ce message
Inserer du texte dans document actif d'une application multi - document [ par GMI ]
Bonjours tous le monde,Je cherche à créer une application multi document ( Avec un MDIForm ), et je n'arrive pas à inserer du texte dans le document a
Menu quand ont clique sur la barre en haut.... [ par Trafalio BlackHammer ]
Ya un moyen de rajouter quelque chose dans la barre en haut quand ont clique Merci !Aurevoir et si vous pouvez répondre a mon Probleme de Progress Bar
Aucunes requêtes ne fonctionnent avec l'ADO [ par Alain ]
Dans mon appli. aucunes des requêtes, suppression consultation insertion, n'aboutissent.J'obtiens le message suivant :Erreur d'exécution '-2147217904
Pour les pros! [ par Danger Prophet ]
BonjourComment est ce que je pourrais, depuis un bouton, ouvrir internet explorer à un adresse précise (sans qu'on le sache), de receuillir une prhase
Sélection d'une ligne en Rich Text Box [ par Blousé ]
Voilà un petit casse tête (pour moi entout cas, vu que je ne connaît pas grand chose) :A l'aide de la fonction Find je recherche dans mon texte des mo
Access - VBA : Fonction sur chaque champ de chaque table [ par ghiscool ]
Salut,alors voilà je voudrais virer tous les caractères spéciaux de chaque champ de chaque table. Ma fonction est faite, il n'y a plus qu'à l'applique
copie d'une colonne d'un fichier excel a un autre. [ par gsu ]
Comment faire pour ouvrir un fichier excel du meme nom que celui actif (date de l'enregistrement via une inputbox),copier une colonne et la coller dan
"Impossible de trouver le formulaire auquel il est fait référence ..." Arrrrrffffffffff [ par ghiscool ]
Alors voila mon problème : dans le code du sous-formulaire FormA, je veux acceder à un champ se trouvant dans ce formulaire : val = Forms!FormA!id.Val
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|