AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Wie Fehler bzw. Rückgabewert False abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Fehler bzw. Rückgabewert False abfangen?

Ein Thema von AlexII · begonnen am 26. Jun 2015 · letzter Beitrag vom 27. Jun 2015
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Wie Fehler bzw. Rückgabewert False abfangen?

  Alt 26. Jun 2015, 13:47
Hallo,

ich möchte mit dieser Zeile prüfen, ob ein Wechseldatenträger beschreibbar ist:

ForceDirectoriesUTF8(RemovableDriveList.Strings[0] + 'test'); 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? Diese zwei Möglichkeiten machen es nicht:

Delphi-Quellcode:
try
  ForceDirectoriesUTF8(RemovableDriveList.Strings[0] + 'test');
except
end;

// oder

if not ForceDirectoriesUTF8(RemovableDriveList.Strings[0] + 'test') then ;
Der Windowsfehler kommt trotzdem.

Danke!
Miniaturansicht angehängter Grafiken
screenshot.png  
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

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

  Alt 26. Jun 2015, 13:51
Wie stellst du dir den vor, wie die zweite Möglichkeit was an der Meldung ändert

Abgesehen davon findet man mit Google super schnell diese Lösung.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 26. Jun 2015, 13:55
Wie stellst du dir den vor, wie die zweite Möglichkeit was an der Meldung ändert
Jah...
Zitat:
ForceDirectoriesUTF8
gibt False zurück und weiter passiert nichts.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

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

  Alt 26. Jun 2015, 14:00
ForceDirectoriesUTF8 gibt False zurück und weiter passiert nichts.
Nun weiß ForceDirectoriesUTF8 aber gar nicht, ob du etwas mit dem Rückgabewert machst.

Im Ernst, guckt dir die verlinkten Antworten an, da sollte eine Lösung dabei sein, die dir passt.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#5

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

  Alt 26. Jun 2015, 14:02
Ok....

Habe diese hier gefunden. Muss da Dw1 und Dw2 nicht mit Werter belegt werden?

Delphi-Quellcode:
function LaufwerkBereit(root: string): boolean;
var Oem: cardinal;
  Dw1, Dw2: DWORD;
begin
  Oem := SetErrorMode(SEM_FAILCRITICALERRORS);
  result := GetVolumeInformation(PCHAR(Root), nil, 0, nil, Dw1, Dw2, nil, 0);
  SetErrorMode(Oem) ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Laufwerkbereit('A:\') then ShowMessage('Laufwerk bereit!')
  else ShowMessage('Laufwerk nicht bereit!');
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

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

  Alt 26. Jun 2015, 14:04
Muss da Dw1 und Dw2 nicht mit Werter belegt werden?
Nein, da das optionale Ausgabeparameter sind.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#7

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

  Alt 26. Jun 2015, 14:09
Der sagt mit, meine schreibgeschützte SD-Karte ist bereit... voller Quatsch...
Muss wohl noch was anpassen.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII (26. Jun 2015 um 14:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#8

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

  Alt 26. Jun 2015, 14:12
GetVolumeInformation wird hier nur dazu "missbraucht", um zu prüfen, ob ein Medium bzw. Laufwerk vorhanden ist. Wenn du wissen willst, ob das Laufwerk beschreibbar ist, musst du das trotzdem prüfen - ob nun mit ForceDirectories oder sonstwie, ist erstmal egal.

MfG Dalai
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#9

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

  Alt 26. Jun 2015, 14:17
GetVolumeInformation wird hier nur dazu "missbraucht", um zu prüfen, ob ein Medium bzw. Laufwerk vorhanden ist. Wenn du wissen willst, ob das Laufwerk beschreibbar ist, musst du das trotzdem prüfen - ob nun mit ForceDirectories oder sonstwie, ist erstmal egal.

MfG Dalai
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.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#10

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

  Alt 26. Jun 2015, 14:28
Möglich, dass das geht. Denkbar, dass MS damit etwas anderes meint. Probier's doch einfach aus - mehr als nicht funktionieren kann's nicht .

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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:13 Uhr.
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