![]() |
ShellExecute - 1400 ungültiges Fensterhandle
Folgendes Problem:
Ich kille in meinem Programm den Explorer-Prozess um sicherzustellen das der User während dem Ausführen meines Programmes nicht arbeiten kann (Grund: Das Programm wird bei der Anmeldung in einem Netzwerk gestartet. Der User muss den Grund und denjenigen der ihn beauftargt hat eintargen. Diese Eingaben werden dann geloggt...). Beim Beenden des Programms starte ich den Explorer wiefolgt neu:
Delphi-Quellcode:
frm_main.GetAppHandle gibt hierbei das Handle der Application wieder. Das Programm funzt soweit super. Manchmal aber bekomme ich von Windoof (es öffnet sich ne kleine MessageBox) den Fehler 1400 - ungültiges Fensterhandle. Ich bin mir zu 95% sicher das es an diesem Auruf liegt, weiß aber nicht warum der Fehler auftaucht. Wie schon gesagt der Fehler tritt beinahe willkürlich auf.
ShellExecute(frm_main.GetAppHandle , Nil, PChar('explorer'), nil, nil, SW_NORMAL);
Vielen Dank im Vorraus Mr_G |
Re: ShellExecute - 1400 ungültiges Fensterhandle
Zeig mal die Funktion GetAppHandle.
|
Re: ShellExecute - 1400 ungültiges Fensterhandle
Delphi-Quellcode:
Die Function zum öffnen öffnen des Explorers liegt in einer Unit in der ich nicht an das Application-Objekt komme... Daher dieser Umweg...
function Tfrm_main.GetAppHandle: HWND;
begin Result := Application.Handle; end; |
Re: ShellExecute - 1400 ungültiges Fensterhandle
Moin Mr G,
falls es ansonsten nichts ausmacht: Übergib doch bei ShellExecute einfach 0 statt des Handles. |
Re: ShellExecute - 1400 ungültiges Fensterhandle
Auch das habe ich schon ausprobiert. Leider taucht auch dabei in unregelmäßigen abständen der Fehler auf.
|
Re: ShellExecute - 1400 ungültiges Fensterhandle
Moin Mr G,
speziell für solch unerklärliche Exceptions könnstest Du es mal mit madExcept versuchen ( ![]() Das ersetzt die Exception Behandlung von Delphi, und zeigt Dir im Fehlerfalle den Callstack an, um den "Schuldigen" leichter ausmachen zu können. |
Re: ShellExecute - 1400 ungültiges Fensterhandle
Danke für den Tipp...
Ich befürchte aber das mir das nicht hilft, da ich von der IDE keine Exception bekomme... Wie gesagt: Es teucht einfach ein kleines Fehler-Fenster auf das ich auch nicht mit try-except abfangen kann... |
Re: ShellExecute - 1400 ungültiges Fensterhandle
Moin Mr G,
wenn Du nicht 100%ig weisst, dass es an der genannten Stelle liegt, kannst Du auch nicht gezielt try/except einbauen. Ich halte es für sehr wahrscheinlich, dass es innerhalb des Programmes ausgelöst wird. Bei mir kann ich gut unterscheiden, ob der Fehler von Windows, oder dem Programm generiert wird, denn ich habe ein englisches Delphi, aber ein deutsches Windows. ;-) |
Re: ShellExecute - 1400 ungültiges Fensterhandle
ich hatte diesen fehler auch einmal vor kurzem.
er wurde ausgelöst, weil ich in meiner wndproc das inherited; nicht drinhatte. vielleicht fehlt das bei dir ja auch :?: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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