Laufwerksname ermitteln
-
Hallo,
wie kann ich den Namen eines Laufwerks (Festplatte: Lokaler Datenträger1, Lokaler Datenträger2, oder so ähnlich) ermitteln.
Speziell geht es darum, dass ich prüfen möchte, ob ein bestimmter TrueCrypt Container eingebunden ist.
Bis jetzt hatte ich nur eine Funktion gefunden, mit der man prüfen konnte ob es eine HDD oder ein CD Laufwerk ist.Vielleicht kann man sowas auch anders prüfen, würd mich sehr freuen, wenn da jemand ne Idee hat.
-
Da du nicht sagst auf welchem System du dich befindest, sag ich mal nur:
/etc/mtab einlesen und auswerten. Steht alles drin
Sollte dir das nicht gefallen oder helfen, sag noch mehr über dein Zielsystem, dann kann man dich auch ins richtige Unterforum verschieben.
-
"Lokaler Datenträger" klingt doch sehr nach Windows, gehört also ins WinAPI-Forum.
Google sagt, dass dir GetVolumeInformation weiterhilft (VolumeName ist das, was dich interessieren dürfte).
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
GetVolumeInformation
http://msdn.microsoft.com/en-us/library/aa364993(VS.85).aspx
-
Das war genau die Funktion, die ich gesucht habe. Hatte immer nach GetDriveType gesucht.
Besten dank euch allen.
-
Ich bekomme die Variable "VolumeName" in der Schleife nicht geleert.
DWORD VolumeSerialNumber={0}; DWORD dwMaxNameLength={0}; DWORD dwFileSystemFlags={0}; TCHAR FileSysName[128]={0}; TCHAR VolumeName[128]={0}; for(i=0; !(VolumeName[0]=='B' && VolumeName[1]=='a' && VolumeName[2]=='c' && VolumeName[3]=='k' && VolumeName[4]=='u' && VolumeName[5]=='p' && VolumeName[6]=='_' && VolumeName[7]=='D' && VolumeName[8]=='e' && VolumeName[9]=='l' && VolumeName[10]=='l') && i<26; i++){ Drive_letter[0]=zeichen; GetVolumeInformation( Drive_letter, VolumeName, sizeof( VolumeName ) - 1, &VolumeSerialNumber, &dwMaxNameLength, &dwFileSystemFlags, FileSysName, sizeof( FileSysName ) - 1 ); cout << VolumeName << endl; cout << FileSysName << endl; cout << VolumeSerialNumber << endl; cout <<"\n"; VolumeName={0}; //Wie kann ich diese Variable leeren? zeichen++; }Fehler:
25 C:\Users\Computer\Desktop\Unbenannt2.cpp expected primary-expression before '{' token
25 C:\Users\Computer\Desktop\Unbenannt2.cpp expected `;' before '{' token
-
Was willst Du denn "leeren"?
1. Versuch mal "strstr"... anstelle dem komischen "if"
2. Einen Leerstring "erzeugt" man mit "VolumeName[0] = 0"
-
Danke Jochen Kalmbach.
Punkt 1 verstehe ich zwar nicht ganz, aber Punkt 2 ist genau das, was ich verzweifelt gesucht habe.
-
strstr(VolumeName,"Backup_Dell")
-
Das wäre ja zu einfach
