Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Wie Fehler bzw. Rückgabewert False abfangen? (https://www.delphipraxis.net/185641-wie-fehler-bzw-rueckgabewert-false-abfangen.html)

Sir Rufo 26. Jun 2015 14:28

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Ganz allgemein gesagt handelt es sich bei dem erscheinenden Dialog nicht um eine Fehlermeldung, sondern eine Aufforderung an den Benutzer, hier tätig zu werden und seine Entscheidung zu verkünden.

Erst wenn der Benutzer sich dagegen entscheidet, dann wird es ein Fehler.

Und
Delphi-Quellcode:
ForceDirectories
wirft eben keine Exception, sondern liefert den Erfolg über einen
Delphi-Quellcode:
Boolean
Wert zurück.

Das sollte dann auch erklären, warum hier ein
Delphi-Quellcode:
try except
ins Leere läuft.

Ein Blick in die MSDN-Doku hilft auch
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

mkinzler 26. Jun 2015 14:29

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Wenn ein Volume nicht raed only ist, heißt das noch lange nicht, dass man schreiben kann. Die Systemplatte ist z.B. nicht schreibgeschützt und man kann trotzdem ( als Nicht Admin) nicht in die Root schreiben.

AlexII 26. Jun 2015 14:32

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Ok... aber wie prüfe ich, ob der Wechseldatenträger beschreibbar ist, so dass kein Meldungsfenster erscheinen?

BadenPower 26. Jun 2015 14:34

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Zitat:

Zitat von AlexII (Beitrag 1306715)
Und was ist mit diesem Satz? Wie kann ich den Rückgabewert von GetVolumeInformation auf FILE_READ_ONLY_VOLUME prüfen?

Zitat:

Call GetVolumeInformation() and check FILE_READ_ONLY_VOLUME in the returned flags parameter.

Dieser Satz sagt aus, dass Du in den zurückgegebenen Parametern auf das Flag "FILE_READ_ONLY_VOLUME" prüfen sollst, um zu wissen, dass das Laufwerk schreibgeschützt ist.

Hilfe lesen!

AlexII 26. Jun 2015 14:39

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Das wäre dann wie folgt, so wie ich das verstehen:

Delphi-Quellcode:
Result := GetVolumeInformation(PChar(Root), nil, 0, nil, Dw1, FILE_READ_ONLY_VOLUME, nil, 0);
Aber
Zitat:

FILE_READ_ONLY_VOLUME
wird nicht gefunden. Muss ich daraus eine konstante Variable machen, oder so? Und wenn, welchen Wert besitzt sie?

Sir Rufo 26. Jun 2015 14:40

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Eher so
Delphi-Quellcode:
var
  MaximumComponentLength, FileSystemFlags: Cardinal;
begin
  if not GetVolumeInformation( PChar( 'C:\'), nil, 0, nil, MaximumComponentLength, FileSystemFlags, nil, 0 ) then
    RaiseLastOSError( );

  Result := ( ( FileSystemFlags and FILE_READ_ONLY_VOLUME ) = FILE_READ_ONLY_VOLUME );
end;
Zitat:

Zitat von AlexII (Beitrag 1306724)
Aber
Zitat:

FILE_READ_ONLY_VOLUME
wird nicht gefunden. Muss ich daraus eine konstante Variable machen, oder so? Und wenn, welchen Wert besitzt sie?

Ja, den Link zur MSDN-Doku hatte ich dir geschickt, jetzt musst du nur noch lesen :roll:

Perlsau 26. Jun 2015 14:40

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Zitat:

Zitat von AlexII (Beitrag 1306706)
Nun stecke ich eine gelockte SD-Karte ein und bekomme den Fehler, dass die Karte schreibgeschützt ist (ist auch logisch), siehe Screenshot. Aber wie fange ich diese Windowsmeldung ab?

Wieso möchtest du diese Meldung überhaupt abfangen? Ist denn nicht eine äußerst sinnvolle Meldung, die den Anwender darüber informiert, daß er den Schreibschutz entfernen muß, bevor er den Datenträger beschreiben kann?

Sir Rufo 26. Jun 2015 14:44

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Zitat:

Zitat von mkinzler (Beitrag 1306720)
Wenn ein Volume nicht raed only ist, heißt das noch lange nicht, dass man schreiben kann. Die Systemplatte ist z.B. nicht schreibgeschützt und man kann trotzdem ( als Nicht Admin) nicht in die Root schreiben.

Das macht in diesem Falle aber nichts, denn dieser Dialog kommt nur dann, wenn das Volume read only ist und der Benutzer eine Chance hat, diesen Schreibschutz zu entfernen ;)

AlexII 26. Jun 2015 14:45

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Zitat:

Zitat von Perlsau (Beitrag 1306726)
Zitat:

Zitat von AlexII (Beitrag 1306706)
Nun stecke ich eine gelockte SD-Karte ein und bekomme den Fehler, dass die Karte schreibgeschützt ist (ist auch logisch), siehe Screenshot. Aber wie fange ich diese Windowsmeldung ab?

Wieso möchtest du diese Meldung überhaupt abfangen? Ist denn nicht eine äußerst sinnvolle Meldung, die den Anwender darüber informiert, daß er den Schreibschutz entfernen muß, bevor er den Datenträger beschreiben kann?

Muss so sein, meine Anwendung sagt es dem Anwender. Der bekommt sie schon zu sehen )))

mkinzler 26. Jun 2015 14:47

AW: Wie Fehler bzw. Rückgabewert False abfangen?
 
Und wenn der Anwender unabhängig von Deiner Anwendung eine Karte mit Schreibschutz einschiebt, unterbleibt dann der Hinweis?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Seite 2 von 5     12 34     Letzte »    

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