Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm unter XP: Exception Processing Message (https://www.delphipraxis.net/150241-programm-unter-xp-exception-processing-message.html)

erik-17 11. Apr 2010 09:17


Programm unter XP: Exception Processing Message
 
Hallo Leute,

ich hab mit meinem Programm unter XP ein Problem:
Immer wenn ich es starte kommt die Windows Fehlermeldung:

Zitat:

*** Windows – kein Datenträger

*** Exception Processing Message c0000013 Parameters 75b0b9c 4 75b0b9c 75b0b9c
Ich hab keine Ahnung, was das jetzt bedeuted. Hab schon nach der Meldung gegooglet. Diese Meldung erscheint recht häufig bei einigen, meist beim Hochfahren und beim Öffnen von Software. Einige können dann auch gar nicht mehr herunterfahren.
Nur bei mir ist es anders:
Meldung kommt nur beim Starten von meinem Programm. Kam vorher noch nie und auch das Herunterfahren klappte problemlos.
Unter Vista läuft es ohne Fehlermeldung, nur unter XP.
Und das kurioseste ist noch, dass das Programm (wenn man bei der Meldung Weiter oder Abbrechen drückt) einwandfrei läuft.

Hier ist der Code von Form1.Show:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
user:= TStringList.Create;
korb:= TStringList.Create;
aResult:=TStringList.Create;
userpfad;
aResult:=TStringList.Create;
papierkorb;
Label3.Caption:=GetOS;
end;


procedure TForm1.userpfad;
begin
if (GetOS='Vista') then FindDirs('C:\users\','*',false);
if (GetOS= 'XP' ) then FindDirs('C:\Dokumente und Einstellungen\','*',false);
user:=aResult;
end;


function TForm1.GetOS:string;
var s : string;
   Regist : TRegIniFile;
begin
regist:=TRegIniFile.Create('regist');
regist.rootKey:=HKEY_LOCAL_MACHINE;
regist.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\',false);
s:=regist.readstring('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\','ProductName','System nicht erkannt');
regist.free;
if not (pos('Vista',s)=0) then s:='Vista';
if not (pos('XP',s)=0) then s:='XP';
Result:=s;
end;
FindDirs macht folgendes: FindDirs('Pfad','Suchmaske',Unterordner auch durchsuchen?');
Die Procedure macht soweit keine Probleme, deswegen hab ich sie auch nicht mit reinkopiert.



Wisst ihr woran das liegen könnte??
Vielleicht an der Funktion "GetOS"??

himitsu 11. Apr 2010 09:25

Re: Programm unter XP: Exception Processing Message
 
Zitat:

C:\Dokumente und Einstellungen\
Solche Verzeichnisse werden nicht hardgecodet. :warn:

Immerhin ändert sich dieses Verzeichnis (vorallem je nach OS) und man man kann es auch verschieben.


http://www.delphi-treff.de/tutorials/vcl/vista/page/5/

vorallem GetSpecialFolder, bzw. MSDN-Library durchsuchenSHGetFolderPath ... es gibt auch andere gleichartige Funktionen (sollten sich auch genügend Infos hier in der DP finden lassen > Hier im Forum suchenGetSpecialFolder )


Zitat:

Immer wenn ich es starte kommt die Windows Fehlermeldung:
Und wo kommt diese Meldung?

Debuggen ist das Stichwort.

erik-17 11. Apr 2010 09:27

Re: Programm unter XP: Exception Processing Message
 
OK Leute,

habs selbst gefunden :thumb:

Procedure Papierkorb greift auf viele Datenträger zu (C bis F)
Da liegt der Fehler.



// Manchmal hilft es schon, sich mal Fehlermeldungen Wort für Wort durchzulesen :)

himitsu 11. Apr 2010 09:30

Re: Programm unter XP: Exception Processing Message
 
Zitat:

Zitat von erik-17
Procedure Papierkorb greift auf viele Datenträger zu (C bis F)
Da liegt der Fehler.

Also die Funktion, deren Inneres uns hier unterschlagen wurde.

Zitat:

Zitat von erik-17
// Manchmal hilft es schon, sich mal Fehlermeldungen Wort für Wort durchzulesen :)

PS: Das Debuggen hätte dir auch sagen können genau wo der Fehler auftritt.

PSS: Was macht eine Funktion "Papierkorb" eigentlich?
Interessiert mich zwar nicht wirklich, aber so als Tipp: Vergib besser verständlichere Namen, damit man weiß, was dort passiert ... vorallem damit du es irgendwann selber auch noch weißt. :zwinker:

erik-17 11. Apr 2010 09:34

Re: Programm unter XP: Exception Processing Message
 
Naja Debuggen hätte nich viel gebracht:
Delphi hab ich nur unter Vista, wollte nur mal schaun obs auch unter XP läuft (<-- das Programm unter XP, nicht Delphi).

Papierkorb:
Delphi-Quellcode:
procedure TForm1.papierkorb;
begin
FindDirs('C:\$RECYCLE.BIN\','*',false);
FindDirs('D:\$RECYCLE.BIN\','*',false);
FindDirs('E:\$RECYCLE.BIN\','*',false);
FindDirs('F:\$RECYCLE.BIN\','*',false);
FindDirs('G:\$RECYCLE.BIN\','*',false);
FindDirs('H:\$RECYCLE.BIN\','*',false);
korb:=aResult;
end;
^^ Ich wette, dass XP da ein Laufwerk / Datenträger nicht gefunden hat :lol:

himitsu 11. Apr 2010 11:35

Re: Programm unter XP: Exception Processing Message
 
Abgesehn davon, daß man nicht direkt über dieses interne Verzeichnis auf einen Papierkorb zugreift,
heißt dieses Papierkorbverzeichnis unter XP auch noch anders.

RECYCLER ... und ich glaub unter Win2000 hieß es noch Recycled.

Für den Papierkorb gibt es eine entsprechende API (weiß aber grad nicht welche) und wie sonst auch, bekommt man zu solchen Systemverzeichnissen über die obengenannte API die richtigen Pfade.

PS: Unter Windows kann man innerhalb von NTFS auch Laufwerke ohne Laufwerksbuchstaben mounten, so daß man diese mit A: und Co. garnicht finden kann.

erik-17 11. Apr 2010 19:25

Re: Programm unter XP: Exception Processing Message
 
Hi,

hab deine Antwort grad gelesen.
Werde es mal mit der API versuchen.

Warum kann Windows nicht mal die Pfade für Papierkorb, User-Dateien und Anwendungsdateien gleich lassen von Version zu Version.
Das würde einiges einfacher machen :)

himitsu 11. Apr 2010 19:48

Re: Programm unter XP: Exception Processing Message
 
Zitat:

Warum ...
Weil vermutlich die Papierkörbe der unterschiedlichen Windowsversionen anders aufgebaut sind
und somit, bei mehreren installierten (unterschiedlichen) Betriebsystem sich die Papierkörbe nicht gegenseitig stören und so keine Probleme verursachen. :zwinker:

erik-17 12. Apr 2010 13:32

Re: Programm unter XP: Exception Processing Message
 
Hallo,

das geht zwar jetzt etwas ab vom Thema, aber ...

Das mit den unterschiedlichen Betriebssystemen, die installiert sein können, ist mir schon klar. Dann stören die sich nicht. Aber man kann doch eine Festplatte in verschiedene Partitionen aufteilen. Ich hab eine Festplatte in meim Laptop, die ist in drei Teile geteilt (1x1,5 GB und 2x115 GB). Dann kann man doch auch für (wenn man Vista hat) für XP ne neue Partition anlegen und schon stört es sich nicht mehr.
Das war so meine Überlegung dafür :spin2:

himitsu 12. Apr 2010 14:41

Re: Programm unter XP: Exception Processing Message
 
Dennoch hast du von beiden OS Zugriff auf alle Partitionen, könntest somit überall Löschen und demnach benötigt jedes dieser OS auf jeder Platte einen "eigenen" Papierkorb.


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