Bonjour
J'aimerai pouvoir déterminer dans mon programme si Windows utilise le style XP ou classique.
La hauteur de la barre de titre et les dimensions du DataGridview en dépendent et je veux adapter mon application.
Merci
Alain
Version imprimable
Bonjour
J'aimerai pouvoir déterminer dans mon programme si Windows utilise le style XP ou classique.
La hauteur de la barre de titre et les dimensions du DataGridview en dépendent et je veux adapter mon application.
Merci
Alain
Bonjour, bon voila pour ke moi j'utilise se code
Code:
1
2
3
4
5
6
7
8
9 Module Module1 Sub Main() 'Style Win XP Application.EnableVisualStyles() Application.Run(New Menu) End Sub End Module
j'espere ke ça vous aidé ;)Code:
1
2
3
4
5
6
7
8 Public Sub New() MyBase.New() 'Cet appel est requis par le Concepteur Windows Form. InitializeComponent() 'Ajoutez une initialisation quelconque après l'appel InitializeComponent() Application.EnableVisualStyles() End Sub
Bonjour
Merci pour la réponse, mais ce n'est pas tout à fais mon problème:
Mon application utilise bien les Visual Styles XP, mais si l'utilisateur sur sa machine a décidé dans la configuration de son affichage d'utiliser le style classique, mon application s'affichera également en style classique.
C'est ce choix de l'utilisateur qu'il faudrait que je puissse déterminer.
A+
Alain
Bonsoir,
J'avais cherché la même chose un moment j'étais tombé sur ca, mais je n'ai pas encore eu l'occasion de le tester ...
Source : http://addressof.com/blog/archive/2004/02/14/384.aspxCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal path As String) As IntPtr Private Declare Function GetProcAddress Lib "kernel32.dll" (ByVal library As IntPtr, ByVal procName As String) As IntPtr Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal library As IntPtr) As Boolean Private Declare Function IsThemeActive Lib "uxtheme.dll" () AsBoolean Private Declare Function IsAppThemed Lib "uxtheme.dll" () AsBoolean Private Function XPThemesEnabled() As Boolean Dim os As OperatingSystem = System.Environment.OSVersion If os.Platform = PlatformID.Win32NT _ AndAlso (((os.Version.Major = 5) AndAlso (os.Version.Minor >= 1)) _ OrElse (os.Version.Major > 5)) Then Dim uxTheme As IntPtr = LoadLibrary("uxtheme.dll") If Not uxTheme.Equals(IntPtr.Zero) Then Dim handle As IntPtr = GetProcAddress(uxTheme, "IsThemeActive") If handle.Equals(IntPtr.Zero) Then ' an error occurred, use GetLastError Else If IsThemeActive() Then Return IsAppThemed End If End If Else ' an error occurred, use GetLastError End If FreeLibrary(uxTheme) End If Return False End Function
Bien à toi et bon code :)
Looney
Bonjour
J'ai résolu mon Problème: dans la base de registre on peut déterminer si l'utilisateur a choisi le style XP ou classique pour Windows.
C'est la clé:
'HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask'
Sa valeur est codée sur 4 bytes.
Le 3ème byte est 5 pour style classique ou 7 pour style XP
:) Alain
Salut !
Comment as-tu fait pour en arriver à cette conclusion ?
Salut
J'ai trouvé la solution en effectuant un vrai travail de détective dans la base de registre:
Analyser où Microsoft avait bien pu cacher ça, puis tester en switchant entre style classique et XP et regarder où quelque chose changeait.
Pour tout te dire, ça n'a pas été en 5 minutes ;)
Alain