Laufwerks Buchstaben Herrausfinden

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Shogo

Betreff: Laufwerks Buchstaben Herrausfinden

BeitragSo, Aug 08, 2004 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo gibt es eine Möglichkeit herauszufinden welchen Buchstaben eine Festplatte hat?

Shogo
 

Jake

BeitragSo, Aug 08, 2004 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Guck mal unter SystemProperty$().

Shogo

BeitragSo, Aug 08, 2004 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

"APPDIR" = liefert Name des BlitzBasic-Ordners
"OS" = liefert Name des Betriebssystems
"SYSTEMDIR" = liefert Name des System-Ordners
"TEMPDIR" = liefert Name des Temp-Ordners
"WINDOWSDIR" = liefert Name des Windows-Ordners


Gibts da noch mehr Parameter für weil wie ich das mit denen rausbekommen soll weiß ich wirklich nicht.
 

Ballermann99

BeitragSo, Aug 08, 2004 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du den Buchstaben vom Laufwerk suchst, auf dem dein Programm läuft kannst dus so machen

Code: [AUSKLAPPEN]

Print Left(CurrentDir(), 3)
WaitKey


Wenn du von allen Festplatten den Buchstaben willst brauchst du ne Userlib.

MfG Ballermann99
 

Mashed Crashed

BeitragMo, Mai 12, 2008 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Bin mal auf diesen Uraltenthread gestoßen, doch will das ma eben richtig stellen dass das auch ohne Lib geht Wink

Code: [AUSKLAPPEN]
For I = 0 To 25
   stream = 0
   stream = ReadDir(Chr(65+I)+":\")
   If stream <> 0 Then Print Chr(65+I)+":\"
   Closedir(Chr(65+I))
Next


EDIT: Besser so?
  • Zuletzt bearbeitet von Mashed Crashed am Do, Mai 29, 2008 16:27, insgesamt 3-mal bearbeitet

Eingeproggt

BeitragMo, Mai 12, 2008 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Will das mal eben richtig stellen, dass man mit deiner Methode nicht zwischen zB USB-Stick oder Festplatte unterscheidet und die oben genannte Methode ohne Lib auskommt.

EDIT: Und wenn du Stream nicht auf 0 setzt und das Directory nicht wieder schließt, dann haben wir überhaupt die Katastrophe perfekt.

sry, musste sein.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Starwar

BeitragMo, Mai 12, 2008 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

; *****************************************
;.lib kernel32.decls
; GetDriveType%(drivename$):"GetDriveTypeA"
; GetVolumeInformation%(Path$,VolNameBuff*,VolLen%,Serial*,MaxComponentLen*,fsFlags*,fsNameBuff*,fsNameLen%):"GetVolumeInformationA"
; GetLogicalDriveStrings%(bufflen%,buffer*):"GetLogicalDriveStringsA"
; *****************************************

Global driveanz
Dim driveletter$(50)
Dim drivename$(50)
Dim drivetype$(50)
Dim filesystem$(50)
Dim driveentry%(50)

Function GetVolumeInfo()
driveanz = 0
   ; first, get a list of available volumes  .. A:\B:\C:\F:\ ...
   vlist=CreateBank(256)
   GetLogicalDriveStrings 255,vlist
   drivelist$=PeekString$(vlist,256)
   FreeBank vlist
   ; run through list of voulumes
   For driveanz=0 To Len(drivelist$)/3-1
      driveletter$(driveanz)=Mid$(drivelist$,driveanz*3+1,3)
      drivename$(driveanz)="N/A"
      Select GetDriveType(driveletter$(driveanz))
         Case 2 : drivetype$(driveanz)= "Wechseldatenträger"
         Case 3 : drivetype$(driveanz)= "Lokaler Datenträger"
         Case 4 : drivetype$(driveanz)= "Netzlaufwerk"
         Case 5 : drivetype$(driveanz)= "CD/DVD/HD-DVD/BlueRay"
         Case 6 : drivetype$(driveanz)= "RAM-Laufwerk"
         Default : drivetype$(driveanz)= "N/A"
      End Select
      vn=CreateBank(256) : sn=CreateBank(4)
      mcl=CreateBank(4) : flags=CreateBank(4) : fs=CreateBank(256)
      GetVolumeInformation driveletter$(driveanz),vn,255,sn,mcl,flags,fs,255
      drivename$(driveanz)=PeekString$(vn,256)
      If drivename$(driveanz)="" Then drivename$(driveanz)="N/A"
      PeekInt(sn,0)
      PeekInt(mcl,0)
      PeekInt(flags,0)
      filesystem$(driveanz)=PeekString$(fs,256)
      ; free the banks
      FreeBank sn : FreeBank mcl : FreeBank flags
      FreeBank vn : FreeBank fs
   Next
End Function

; build and return a string of characters from a bank
Function PeekString$(bank,numbytes)
   Local a$=""
   For pos=0 To numbytes-1
      byte=PeekByte(bank,pos)
      If byte<>0 Then a$=a$+Chr$(byte)
   Next
   Return a$
End Function

Ist aus dem Englischen Forum, von mir Vereinfacht und "Übersetzt"
Ändere bitte die Zahlen der Arrays auf 25 (Das Alphabet hat ja nur 26, als gibt es max 26 Laufwerke)
MFG

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group