AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Laufwerksbezeichnung wie in Windows
Thema durchsuchen
Ansicht
Themen-Optionen

Laufwerksbezeichnung wie in Windows

Ein Thema von Mazel · begonnen am 22. Sep 2006 · letzter Beitrag vom 3. Okt 2006
 
Benutzerbild von Nighthawk1310
Nighthawk1310

Registriert seit: 22. Feb 2004
Ort: Izmir / Türkei
45 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Laufwerksbezeichnung wie in Windows

  Alt 22. Sep 2006, 15:25
Zitat von uwewo:
Windows liest den Namen des Laufwerks aus...
Windows liest nicht direkt einen Namen aus sondern nur den konkreten Typ und die Bezeichnung des Laufwerkes und ich rate einfach mal, dass es das beim Treiber macht und stellt diesen dann für alles andere zu Verfügung. Der Explorer und/oder andere Programme, die es wissen wollen können dies dann über die API auslesen.

ich habe zwar selbst keine ahnung mehr woher ich die beiden funktionen habe,
aber bitte schön:

Delphi-Quellcode:
function GetVolumeLabel(Drive:char):string;
var VolLab:array [0..max_path] of char;
    MaxLength,SysFlag:DWord;
    OldErrorMode:integer;
begin
  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if GetVolumeInformation(PChar(drive+':\'), VolLab, 255,
                       nil, MaxLength,
                       SysFlag, nil, 255) then Result:=vollab;
  finally
    SetErrorMode(OldErrorMode);
  end;
end;

und das hier:

Delphi-Quellcode:
function GetDriveShellDesc ( const Drive : Char) : string;
var rootpathname : string;
    namebuffer : string;
    maximumcomponentlength : dword;
    filesystemflags : dword;
    filesystemnamebuffer : string;
begin

   rootpathname := drive+':\'; // build the rootpath for our api

   // predefine buffers
   setlength(namebuffer,25) ;
   setlength(filesystemnamebuffer,500) ;

   // call the api
   if getvolumeinformation ( // returns boolean true if succeeded
      pchar(rootpathname),
      pchar(namebuffer),
      24,
      Nil,
      maximumcomponentlength,
      filesystemflags,
      pchar(filesystemnamebuffer),
      499)

   // build the resulting dword
   then begin
       Result := StrPas ( PChar (NameBuffer) )+' ('+UpCase(Drive)+':)';
   end
   else begin
       Result := UpCase(Drive)+':\';
   end;

end;
Michael
  Mit Zitat antworten Zitat
 


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 05:39 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-2025 by Thomas Breitkreuz