![]() |
GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben
GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben aufrufen...
hallo an alle, bin gerade dabei ein Programm zu machen, welches verschiedene PC-spezifische Daten liefert wie zB CPU-geschwindigkeit, Arbeitsspeicher oder eben auch Festplattenspeicher. Hier liegt jedoch mein Problem, dass ich es nicht hinbekomme, die Funktion GetDiscFreeSpaceEx mit unterschiedlichen Laufwerksbuchstaben aufzurufen (je nach inhalts eines editfeldes). hier mein bisheriger Lösungsansatz:
Delphi-Quellcode:
das war bisher die einzige Lösung, die Funktioniert hat bzw sich kompilieren ließ, ABER: wenn ich dann im Programm entsprechenden Button klicke liefert mir die Funktion als ausgabe nur müll! ...
procedure TForm1.Button8Click(Sender: TObject);
var freeCaller, total: Int64; Laufwerksbuchstabe : char; zeiger : pchar; x : array [0..255] of char; begin Laufwerksbuchstabe:=edit2.Text[1]; zeiger:=x; zeiger[1]:=Laufwerksbuchstabe; zeiger[2]:=':'; zeiger[3]:='\'; zeiger[4]:=#0; GetDiskFreeSpaceEx((Zeiger), freeCaller, total, nil) showmessage('Freier Speicher: '+IntToStr(((freeCaller div 1024)div 1024)div 1024)+' Gigabytes'); showmessage('Gesamter Speicher: '+(IntToStr(((total div 1024)div 1024)div 1024)+' Gigabytes')); end; kann mir jemand weiterhelfen 1.wie ich das sauberer lösen kann (ohne array of char und 3 Variabeln!) und 2.wie ich es richtig zum laufen bekomme mit vernünftigen ausgabewerten :wink: vielen dank im Vorraus und :dp: Grüße Ändy |
Re: GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben
Hier ists zwar auch überhaupt nicht schön geschrieben, funktioniert aber:
![]() // EDIT: Und wie wäre es so:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
function GetFreeSpace(DriveLetter: Char; var TotalSpace: Int64): Int64; begin GetDiskFreeSpaceEx(PChar(DriveLetter + ':\'), Result, TotalSpace, nil); end; var FreeSpace, Total: Int64; begin FreeSpace := GetFreeSpace('c', Total); ShowMessage('Freier Speicher: ' + IntToStr(FreeSpace div 1073741824) +' Gibibyte'); ShowMessage('Gesamter Speicher: ' + IntToStr(Total div 1073741824) + ' Gibibyte'); end; |
Re: GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben
Zitat:
Delphi-Quellcode:
hängt PChar auch das #0 ran?
strPCopy(RootPath,drive+':\');
Gruß Frank |
Re: GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben
hallo,
@jaenicke hab es anhand deiner 2. Lösung folgendermaßen realisiert: nur hier die Zeile etwas editiert um laufwerksbuchstaben zu wählen:
Delphi-Quellcode:
vielen dank für die schnelle Hilfe
FreeSpace := GetFreeSpace(edit2.text[1], Total);
Gruß Ändy |
Re: GetDiscFreeSpacEx mit verschiedenen Laufwerksbuchstaben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz