Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DiskFree/DiskSpace DOS HDD>2GB (https://www.delphipraxis.net/85474-diskfree-diskspace-dos-hdd-2gb.html)

TUX_der_Pinguin 31. Jan 2007 11:18


DiskFree/DiskSpace DOS HDD>2GB
 
Hallo,

ich habe mir ein kleines Programm geschrieben (Borland Turbo Pascal 7), welches von einer Windows98 Bootdiskette gestartet wird
und mir angaben über ein Laufwerk macht. Im Detail Größe und Freier Speicherplatz. Jetzt gibt es 2 Funktionen die mir
diese Informationen liefern, "DiskFree" und "Diskspace" jedoch ist mir klar das diese nur funktionieren bei Partitionen kleiner
2GB. Jetzt meine Frage wie man dennoch an die Informationen rann kommt, ich habe im Internet einige Dinge gefunden in richtung
Assembler jedoch kann ich dieses nicht, und fertige Beispiele konnte ich nicht finden.

Hat jemand von euch da evtl. etwas auf Lager was man verwenden kann? Also im Großen und ganzen möchte ich ein Programm haben
was von einer Windows98 Bootdiskette aka MS DOS ausgeführt werden kann.

mfg

TUX_der_Pinguin

hoika 31. Jan 2007 11:24

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Hallo,

nur über die neuen Windows-Funktionen.
Die könnte man auch per DLL-Imports (Stichwort: thunking) unter Dos benutzen,
aber über DOS denke ich nicht mehr nach ... ;)


Heiko

marabu 31. Jan 2007 11:31

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Hallo,

die erweiterte API Funktion GetDiskFreeSpaceEx() kommt mit mehr als 2GB zurecht und wird laut PSDK auch von Win98 unterstützt.

Grüße vom marabu

TUX_der_Pinguin 31. Jan 2007 11:34

Re: DiskFree/DiskSpace DOS HDD>2GB
 
@hoika: Naja das wäre dann doch etwas zu aufwendig und kompliziert ...

@marabu: Das ist mir auch klar, jedoch geht es um eine Windows98 "BOOTDISK" was also DOS ist und da laufen nun mal keine 32Bit Programme ....

himitsu 31. Jan 2007 12:12

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Theoretisch könnte man über GetDiskFreeSpace immernoch an das richtige Ergebnis rankommen
SectorSize * Anzahl der freien Sektoren,
aber leider geht das nicht, da MS in dieswer Funktion nicht die tatsächlich freien Sektoren ausgibt, sondern diese intern nur aus dem freiem Speicher und der Sektorgröße ausrechnet.

Jedoch gibt es ja noch andere Funktionen, über welche man an die Anzahl der (freien) Sektoren rankommt (auch schon unter Win9x) ... damit kannst du dann ja selber zusammenrechnen ;)


Und falls du dennoch nicht fündig wirst:
Win9x/DOs kennt ja "nur" FAT, da kannst'e ja notfalls och die 1. FAT auslesen und selber nachzählnen :roll:

marabu 31. Jan 2007 12:28

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Hallo,

das Win98-DOS sollte Int21H function 440DH minor function 60H verstehen: klick

Und zusammen mit der BP7 Dokumentation ist das dann auch ohne tiefere Assembler Kenntnisse machbar.

Freundliche Grüße

TUX_der_Pinguin 31. Jan 2007 12:43

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Hi,

also eine ähnnliche Seite habe ich auch gefunden das aber nicht geschafft das umzusetzen ... ich hab keinen Plan von
Assembler und wie man den in Turbo Pascal einsetzt.

mfg

TUX

marabu 31. Jan 2007 12:49

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Ich habe leider gerade kein Handbuch von BP7 zur Hand, aber findest du für die Funktion MSDOS() keinen Eintrag in der Hilfe?

TUX_der_Pinguin 31. Jan 2007 12:51

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Ich schau mir das nachher mal an ob ich da was zurecht gebastelt bekomme.

marabu 31. Jan 2007 12:54

Re: DiskFree/DiskSpace DOS HDD>2GB
 
Hier noch ein Link: klick

Schau mal unter "Systemnahes Programmieren"


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.
Seite 1 von 2  1 2      

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