AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein GetVolumeInformation seltsames Verhalten?

GetVolumeInformation seltsames Verhalten?

Ein Thema von Glados · begonnen am 11. Jul 2017 · letzter Beitrag vom 11. Jul 2017
Antwort Antwort
Glados
(Gast)

n/a Beiträge
 
#1

GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 10:44
Folgendes Konstrukt gibt als Rückgabe sonderliche Zeichen beispielsweise einen Pfeil der nach oben zeigt wenn man Informationen eines Laufwerks abfragt welches nicht verbunden ist
Delphi-Quellcode:
DriveLetter := #0;

Tmp := ExtractFileDrive(Path);
if Length(Tmp) >= 1 then
 DriveLetter := Tmp[1];

if DriveLetter <> #0 then
 begin
  GetVolumeInformation(PChar(DriveLetter + ':\'), Buf, SizeOf(Buf), nil, Max, Flags, nil, 0);
  sRes := StrPas(Buf);
 end;
Ist es möglich vorher abzufragen, ob das Laufwerk überhaupt verbunden ist?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.091 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 10:52
Wenn du es unbedingt über die WinAPI (statt den Komfortfunktionen welche dir Delphi schon bietet) nutzen willst: GetLogicalDriveStrings.

Außerdem solltest du den Rückgabewert deines GetVolumeInformation-Aufrufs auswerten, der gibt ein True/False zurück ob es überhaupt geklappt hat
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#3

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 10:55
Wie ist "Buf" deklariert?

Und warum prüft niemand den Rückgabewert dieser API?
MSDN-Library durchsuchenGetVolumeInformation -> siehe "Return value"
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#4

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 11:15
Fehler gefunden danke.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#5

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 11:23
Aber für andere Hilfesuchende, mit dem gleichen Problem, nicht genannt.
Die bedanken sich bestimmt dann auch, wenn sie diesen Thread finden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#6

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 11:58
So ist es falsch
Delphi-Quellcode:
GetVolumeInformation(PChar(DriveLetter + ':\'), Buf, SizeOf(Buf), nil, Max, Flags, nil, 0);
sRes := StrPas(Buf);
So ist es besser
Delphi-Quellcode:
if GetVolumeInformation(PChar(DriveLetter + ':\'), Buf, SizeOf(Buf), nil, Max, Flags, nil, 0) then
 sRes := StrPas(Buf);
Wenn jetzt sRes = '' ist, kann man ja noch immer gucken was man macht. Vielleicht sogar ein RaiseLastOSError oder eine andere Behandlung.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.377 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: GetVolumeInformation seltsames Verhalten?

  Alt 11. Jul 2017, 14:27
Danke.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz