Accueil > Forum > > > > DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)
DETERMINER QUEL THEME XP EST ACTIF (BLUE THEME, OLIVE THEME, SILVER THEME)
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
|
Réponse acceptée !
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ée 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
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|