PDA

View Full Version : Delphi: Come si legge l'etichetta di volume di un HD?


Dioveht
11-07-2003, 18:51
Ho provato con GetVolumeInformation ma per qualche ragione restiuisce stringhe strane...

cionci
13-07-2003, 09:51
In che senso stringhe strane ?!?!?!

matpez
13-07-2003, 11:33
Magari ti restituisce si il nome dell'HDD ma anche tutto il resto della stringa che hai passato per completare i 255 char, magari chei una cosa del genere: "qwerty|||||||||||||||||||||||||||||||||||" oppure rovescita!!

Io nn conosco il delphi la mia è solo una supposizione :rolleyes:

Dioveht
13-07-2003, 11:47
Il mio disco D si chiama "QUANTUM15" e il programma mi da qualcosa del tipo "?=$g" (in questo momento non posso scrivere la stringa esatta)

e cmq restituisce la stessa stringa per tutti i dischi...

lalli83
13-07-2003, 11:49
non vorrei dire una cagata...ma magari se sono partizioni dello stesso HDD...magari non le becca....se sono proprio HD diversi...nn so :(

Dioveht
13-07-2003, 13:03
????

cmq sono dischi diversi

Dioveht
13-07-2003, 13:16
sicuramente sbaglio nel lavorare con le variabili PAnsiChar
chi mi dice dov'è l'errore?

var
RootPathName, VolumeNameBuffer, FIleSystemNameBuffer: PAnsiCHar;
VolumeSerialNumber: PDWord;
VolumeNameSize, MaximumComponentLength, FileSystemFlags, FileSystemNameSize: Cardinal;
begin
RootPathName := PAnsiChar('d:\');
VolumeNameSize := 10;
FileSystemNameSize := 10;
GetVolumeInformation(RootPathName, VolumeNameBuffer, VolumeNameSize, VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FIleSystemNameSize);
end;

il risultato della funzione è:
RootPathname = "d:\"
VolumeNameBuffer = "½"
FileSystemNameBuffer = "S‹Ø‹Ãè&Ì"

praticamente la funzione non scrive nulla nelle variabili visto che se prima di chiamare la funzione gli assegno un valora poi dopo la funzione ci ritrovo quello...

Dioveht
20-07-2003, 14:09
Risolto... ovviamente avevo commesso un errore stupido... -___-

Kleidemos
31-08-2003, 12:42
Originariamente inviato da Dioveht
Risolto... ovviamente avevo commesso un errore stupido... -___-

cioe?

Dioveht
31-08-2003, 20:24
le variabili VolumeNameBuffer, FileSystemNameBuffer

devono essere array of Char;