"Philou" <noemail@wanadoo.fr> a écrit dans le message de
news:uUKpju1EIHA.3548@TK2MSFTNGP06.phx.gbl...
> Bonjour,
>
>
> Le menu démarrer de vista est très amusant mais et j'en suis désolé ne
> semble pas tout à fait fini.
>
> En effet, il y a plusieurs répertoires pour ce menu dont notamment
> C:\ProgramData\Microsoft\Windows\Start Menu et
> C:\Users\...\AppData\Roaming\Microsoft\Windows\Sta rt Menu
>
>
> Mais ces braves gens ont oublié quelque chose la traduction en français,
> car de temps en temps en déplaçant un icône
unE icône !
(c'est un nom commun féminin ...) ;-)
> du bureau dans par exemple le répertoir démarrage et bien un miracle
> s'opère démarrage devient startup car startup est apparu dans roaming et
> donc le raccouci anglais prend le dessus de m^me pour accessoires et
> accessories.
Normal ...
Quelle que soit la langue utilisée, le dossier en question a TOUJOURS un nom
anglophone, et s'appelle donc TOUJOURS :
"C:\ProgramData\Microsoft\Windows\Start Menu"
Mais afin de le "localiser" dans la langue en cours, ce dossier possède un
fichier "desktop.ini", aux attributs "caché" et "système", dont le contenu
est défini par :
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell 32.dll,-21786
Si on examine les ressources du fichier
%SystemRoot%\system32\fr-FR\shell32.dll.mui, on trouve que la ressource de
type "STRINGTABLE" (=chaîne) et d'ID 21786 contient "Menu Démarrer"
http://cjoint.com/?kvpmJRjUt4
Quand l'explorateur doit afficher un dossier, il contrôle au
préalable si ce
dossier contient ou non un fichier "desktop.ini" (avec les attributs HS),
contenant ou non un paragraphe
[.ShellClassInfo]
LocalizedResourceName=...
et si c'est le cas, il remplace le nom du dossier par celui contenu
(indirectement) dans la valeur de "LocalizedResourceName"
Sinon, le dossier est affiché avec son VRAI nom
Et ce "bidouillage" ne fonctionne qu'avec l'explorateur.
P.ex. en ligne de commandes, une commande DIR affichera seulement les
"vrais" noms :
C:\ProgramData\Microsoft\Windows>dir
Le volume dans le lecteur C s'appelle VISTA
Le numéro de série du volume est 444C-E934
Répertoire de C:\ProgramData\Microsoft\Windows
02/11/2006 14:37 <REP> .
02/11/2006 14:37 <REP> ..
02/11/2006 14:37 <REP> GameExplorer
20/10/2007 10:47 <REP> Start Menu
02/11/2006 12:23 <REP> Templates
02/11/2006 13:18 <REP> WER
0 fichier(s) 0 octets
6 Rép(s) 8 465 399 808 octets libres
>
> Très amusant les programmeurs.
Les programmeurs n'ont qu'à utiliser, au choix :
- la fonction "ExpandEnvironmentStrings"
DWORD ExpandEnvironmentStrings(
LPCTSTR lpSrc,
LPTSTR lpDst,
DWORD nSize);
à laquelle on passera en paramètre une variable d'environnement
(%APPDATA%, %LOCALAPPDATA%, %ProgramData%, ...)
ou, mieux, :
- la fonction "SHGetFolderPath"
HRESULT SHGetFolderPath(
HWND hwndOwner,
int nFolder,
HANDLE hToken,
DWORD dwFlags,
LPTSTR pszPath);
dans le cas des menus "démarrer/démarrage", on donnera à "nFolder"
l'une des valeurs suivantes
menu démarrer/démarrage de "all users" :
CSIDL_COMMON_STARTMENU (0x0016)
menu démarrer/démarrage de l'utilisateur courant :
CSIDL_STARTMENU (0x000b)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] -
http://www.bellamyjc.org