lang:csharp:windows
Ceci est une ancienne révision du document !
Récupérer le nom d'un disque dur qui est affiché depuis l'explorateur Windows et qui est différent de celui du label du disque dur
public const string SHELL = "shell32.dll"; [DllImport(SHELL, CharSet = CharSet.Unicode)] public static extern uint SHParseDisplayName(string pszName, IntPtr zero, [Out] out IntPtr ppidl, uint sfgaoIn, [Out] out uint psfgaoOut); [DllImport(SHELL, CharSet = CharSet.Unicode)] public static extern uint SHGetNameFromIDList(IntPtr pidl, SIGDN sigdnName, [Out] out String ppszName); public enum SIGDN : uint { NORMALDISPLAY = 0x00000000, PARENTRELATIVEPARSING = 0x80018001, DESKTOPABSOLUTEPARSING = 0x80028000, PARENTRELATIVEEDITING = 0x80031001, DESKTOPABSOLUTEEDITING = 0x8004c000, FILESYSPATH = 0x80058000, URL = 0x80068000, PARENTRELATIVEFORADDRESSBAR = 0x8007c001, PARENTRELATIVE = 0x80080001 } //var x = GetDriveLabel(@"C:\") public string GetDriveLabel(string driveNameAsLetterColonBackslash) { IntPtr pidl; uint dummy; string name; if (SHParseDisplayName(driveNameAsLetterColonBackslash, IntPtr.Zero, out pidl, 0, out dummy) == 0 && SHGetNameFromIDList(pidl, SIGDN.PARENTRELATIVEEDITING, out name) == 0 && name != null) { return name; } return null; }
lang/csharp/windows.1515176781.txt.gz · Dernière modification : de root