2010-04-14 12 views
0

Je veux identifier le disque dans C++ dans mon application Windows. Par exemple: J'ai un disque sur E: \ Puis j'ai changé le disque, et le remplacer par un autre. le nom est toujours E: \ Comment puis-je savoir que le disque est changé, ce n'est pas l'original?Comment puis-je obtenir l'identité d'un disque?

Si je n'ai pas de priorité d'administrateur dans win7, Puis-je quand même utiliser une méthode pour identifier des disques différents?

Merci beaucoup!

Répondre

4

Probablement les méthodes pertinentes sont:

GetLogicalDrives()

BOOL WINAPI GetVolumeInformation( __in_opt LPCTSTR lpRootPathName, __out LPTSTR lpVolumeNameBuffer, __in DWORD nVolumeNameSize, __out_opt LPDWORD lpVolumeSerialNumber, __out_opt LPDWORD lpMaximumComponentLength, __out_opt LPDWORD lpFileSystemFlags, __out LPTSTR lpFileSystemNameBuffer, __in DWORD nFileSystemNameSize )

GetDriveType(string vol)

GetVolumeInformation vous donnera le numéro de série. Si cela ne suffit pas, vous devrez probablement recourir au WMI_PhysicalMedia. Je crois que tout cela devrait fonctionner sans privilèges d'administrateur.

Une page énumérant un tas de fonctions pertinentes est ici: http://msdn.microsoft.com/en-us/library/aa365730(v=VS.85).aspx