Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   MkDir ('c:\temp'); -> external exception (https://www.delphipraxis.net/177303-mkdir-c-%5Ctemp-%3B-external-exception.html)

hoika 30. Okt 2013 14:07

MkDir ('c:\temp'); -> external exception
 
Hallo,

bei manchen Rechner bekomme ich bei dem Befehl

Delphi-Quellcode:
try
  MkDir ('c:\temp');
except
  ; stumme Exception
end;
eine external exception (Nummer weiss ich leider nicht mehr).
IO-Prüfung ist aus.


Und zwar genau dann, wenn das Laufwerk C ein CD-Laufwerk ist
(DirectoryExists wird nat. vorher geprüft).

Ich habe mit jetzt eine virtuelle Maschine mit C als DVD erzeugt,
bekomme den Fehler allerdings nicht.

Ich will das hier nachstellen,
mir geht es nicht um "aber, aber, C:\temp ist doof".

Ich habe so den Verdacht, dass da ein Virenscanner rummurkst,
ich habe hier Eset Nod und AVG, bei beiden gibt es keine Meldung.

Was jemand was darüber ?


Also kurz,
Verzeichnis auf RW-Laufwerk erzeugen abfangen (GetDriveType klappt nicht,
das Laufwerk wird beim Kunden als Festplatte erkannt, ist so ein doofer externer Controller für USB-Geräte).


Danke


Heiko

arnof 30. Okt 2013 14:20

AW: MkDir ('c:\temp'); -> external exception
 
zu wenig Rechte ....

p80286 30. Okt 2013 15:14

AW: MkDir ('c:\temp'); -> external exception
 
Im allgemeinen ist es so, daß nur der "Administrtor" genügend Rechte hat um auf C:\ Unterverzeichnisse anzulegen.
Ist C: ein RO-Medium, dann sollte ein mkdir natürlich auch vor die Wand laufen.

Gruß
K-H

jaenicke 30. Okt 2013 15:57

AW: MkDir ('c:\temp'); -> external exception
 
Um solche Fehler abzufangen muss der ErrorMode auf SEM_FAILCRITICALERRORS gesetzt werden (SetErrorMode). (Und normalerweise hinterher wieder zurück, den alten Wert liefert SetErrorMode dafür direkt zurück.)

hoika 31. Okt 2013 07:05

AW: MkDir ('c:\temp'); -> external exception
 
Hm,

Noch mal zum Grundproblem.

Beim Kunden wird eine external exeption angezeigt,
bei mir nicht !

Ich kann das Problem einfach nicht nachstellen.

Der Fehler kommt u.a., wenn ich OpenSSL zum Signieren benutze.
OpenSSL sucht standardmäßig auf Laufwerk C nach seiner Cfg-Datei.

Ich habe mich so beholfen, dass ich per SetEnvironmentVariable OPENSSL_CONF
direkt im Code setzen.

Auf SetErrorMode bin ich gar nicht gekommen,
kenne es aber.

Das Problem tritt dummerweise nur bei genau einem Kunden auf,
bei ~50 anderen klappt alles, die haben allerdings Windows auch auf C installiert.


Heiko

p80286 31. Okt 2013 12:07

AW: MkDir ('c:\temp'); -> external exception
 
Was passiert den mit
Code:
md %HOMEDRIVE%\temp
Gruß
K-H

hoika 31. Okt 2013 14:54

AW: MkDir ('c:\temp'); -> external exception
 
Hallo,

Noch mal die Grundfrage.
Wann wird eine external exeption ausgeworfen.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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