Deutsch
Quelltexte/ Codesnippets

Bereit Ein Laufwerk Laufwerke Testen

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Laufwerke  - Testen, ob ein Laufwerk bereit ist
Lauffähig ab Profan-Version 5.0
PRFellow-Vorlage
Autor: Thomas Hölzer
3 Routinen zum Testen, ob ein Laufwerk bereit ist
a) IsDriveReady: alle neueren 16+32 Bit Profan-Versionen
Funktioniert auch mit Partitionen > 2 GB, bei denen DiskSize
einen negativen Wert wg. Integerüberlauf zurückliefert.
2 weitere Prozeduren nur um die ErrorMode-Funktionen
vorzustellen, was aber bei Profan nicht unbedigt sein muß,
weil die an sich fällige  kritische Fehlermeldung offenbar
schon von Profan abgeschaltet wird.
b) IsDriveOK : ab Profan 5.0 - 32
c) CheckDrive: ab Profan 6.1 - 32 (wg. Addr-Funktion)
Als Parameter kann jeweils ein einzelner LW-Buchstabe oder
auch ein kompletter Pfad übergeben werden
Ergebnis: 1 = OK; 0 = Fehler
Def IsDriveReady(1) If(And(Gt(DiskSize($(1)),-2),Lt(DiskSize($(1)),1)),0,1)
Def GetVolumeInformation(8) !KERNEL32,GetVolumeInformationA
Def SetCurrentDirectory(1) !KERNEL32,SetCurrentDirectoryA
Def SetErrorMode(1) !KERNEL32,SetErrorMode
Declare dirbuf#

Proc IsDriveOK

    Parameters drive$
    Declare result&,olddir$,olderrormode&
    Let olderrormode&=SetErrorMode(1)
    Let olddir$=GetDir$(@)
    Let drive$=Upper$(Mid$(drive$,1,1));:
    Dim dirbuf#,Add(Len(olddir$),2)
    String dirbuf#,0=drive$
    Let result&=SetCurrentDirectory(dirbuf#)
    String dirbuf#,0=olddir$
    SetCurrentDirectory(dirbuf#)
    SetErrorMode(olderrormode&)
    Dispose dirbuf#
    Return result&

EndProc

Proc CheckDrive

    Parameters drive$
    Declare result&,olderrormode&,dw1&,dw2&
    Let olderrormode&=SetErrorMode(1)
    Let drive$=Upper$(Mid$(drive$,1,1));:
    Dim dirbuf#,Add(Len(drive$),2)
    String dirbuf#,0=drive$
    Let result&=GetVolumeInformation(dirbuf#,0,0,0,Addr(dw1&),Addr(dw2&),0,0)
    SetErrorMode(olderrormode&)
    Dispose dirbuf#
    Return result&

EndProc

Beispiel
SetErrorLevel 2  nur zum Testen - max. Fehlerausgabe
Cls
Print IsDriveReady für C:
Print IsDriveReady(C:)
WaitInput
Cls
Print IsDriveOK für A:
IsDriveOK A
Print &(0)
WaitInput
Cls
Print CheckDrive für C:
CheckDrive C:
Print &(0)
WaitInput
 
16.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.203 Betrachtungen

Unbenanntvor 0 min.
Selmo24.03.2019
Andre Rohland17.02.2013

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie