Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Problem mit Datei-Property-Dialog (https://www.delphipraxis.net/61004-problem-mit-datei-property-dialog.html)

n0b0dy 15. Jan 2006 18:38


Problem mit Datei-Property-Dialog
 
hi,

ich möchte gerne den Windows-Eigenen-Datei-Property-Dialog anzeigen lassen, was soweit eigentlich auch klappt...habe nur das problem, dass wenn der dialog einmal angezeigt wurde, das programm nicht geschlossen wird. also wenn ich den dialog nicht anzeigen lasse lässt sich das programm problemlos beenden. lasse ich ihn jedoch nur einmal anzeigen lässt sich das programm nicht beenden. die form verschwindet, aber der prozess läuft weiter. habe den Dialog folgendermaßen aufgerufen:

Delphi-Quellcode:
uses
  ShellAPI;

procedure ShowPropertyDialog(FileName:String);
var
  info: ShellExecuteInfo;
begin
  FillChar(info, SizeOf(info), 0);
  info.cbSize := SizeOf(info);
  info.fMask := SEE_MASK_INVOKEIDLIST;
  info.lpVerb := 'properties';
  info.lpFile := PChar(filename);
  ShellExecuteEx(@info);
end;
kann mir jemand behilflich sein?

Grüßle

omata 15. Jan 2006 18:46

Re: Problem mit Datei-Property-Dialog
 
Hallo n0b0dy,

ich habe das gerade mal ausprobiert.
Das funktioniert wunderbar, wenn ich das Property-Fenster offen lassen und die Anwendung schliesse verschwinden beide Fenster. Der Programm-Prozess ist auch weg.

Ich kann nicht ganz nachvollziehen, was bei dir da falsch läuft.

MfG
Thorsten

n0b0dy 15. Jan 2006 18:50

Re: Problem mit Datei-Property-Dialog
 
ich meinte das anders.
bei mir ist es so:
sobald ich einmal einen Dialog angezeigt habe (und danach evtl auch schon geschlossen habe) und dann die anwendung schließen will, läuft der Prozess weiter

das hier kommt als letztes und dann das CPU fenster:

Delphi-Quellcode:
Debug Output: The exception pointers are located at 0x0012F870 To get the faulting stack do the following: 1) Do a '.exr 0x0012F964' to display the exception record 2) Do a '.cxr 0x0012F980' to display the context record 3) Do a 'kb' to display the stack  Process Project1.exe (2488)

SirThornberry 15. Jan 2006 18:52

Re: Problem mit Datei-Property-Dialog
 
bei mir schließt sich das ganze ohne probleme. Einzige Unschönheit ist das beim ausführen (also ShellExecuteEx) folgende Fehlermeldung erscheint (vom Debugger innherhalb von Delphi) bevor sich der Dialog öffnet:
Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class ERegistryException with message 'Konnte Daten für 'Cascading' nicht holen'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Schließt die Anwendung bei dir auch nicht wenn du das ganze in ein Extra-Projekt (Testprojekt) auslagerst? Ich vermute der Fehler liegt bei dir wo anders und durch den Aufruf des Dialoges werden zufällig die Speicheradressen überschrieben bzw. der Stack wo du eventuell rumpfuschst.

n0b0dy 15. Jan 2006 19:04

Re: Problem mit Datei-Property-Dialog
 
naja gut, dann muss ich mich mal auf die suche machen ....
an irgendwas musses ja liegen :gruebel:

n0b0dy 15. Jan 2006 19:13

Re: Problem mit Datei-Property-Dialog
 
also habe nun folgendes (verwirrendes) festgestellt:

wenn ich das programm aus delphi heraus starte und diesen dialog öffne, lässt es sich in der tat nicht schließen. starte ich die exe jedoch ohne delphi geht es problemlos!

weiß zwar nicht woran das liegt, aber hauptsache es funzt später ;)


Danke nochmal an euch beide!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz