AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecute - 1400 ungültiges Fensterhandle
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute - 1400 ungültiges Fensterhandle

Ein Thema von Mr_G · begonnen am 8. Mai 2005 · letzter Beitrag vom 8. Mai 2005
Antwort Antwort
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 18:36
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:
ShellExecute(frm_main.GetAppHandle , Nil, PChar('explorer'), nil, nil, SW_NORMAL); 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.

Vielen Dank im Vorraus

Mr_G
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 18:53
Zeig mal die Funktion GetAppHandle.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 18:55
Delphi-Quellcode:
function Tfrm_main.GetAppHandle: HWND;
begin
  Result := Application.Handle;
end;
Die Function zum öffnen öffnen des Explorers liegt in einer Unit in der ich nicht an das Application-Objekt komme... Daher dieser Umweg...
Jan
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 18:59
Moin Mr G,

falls es ansonsten nichts ausmacht: Übergib doch bei ShellExecute einfach 0 statt des Handles.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 19:01
Auch das habe ich schon ausprobiert. Leider taucht auch dabei in unregelmäßigen abständen der Fehler auf.
Jan
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 19:10
Moin Mr G,

speziell für solch unerklärliche Exceptions könnstest Du es mal mit madExcept versuchen (www.madshi.net)
Das ersetzt die Exception Behandlung von Delphi, und zeigt Dir im Fehlerfalle den Callstack an, um den "Schuldigen" leichter ausmachen zu können.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#7

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 19:19
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...
Jan
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 19:27
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#9

Re: ShellExecute - 1400 ungültiges Fensterhandle

  Alt 8. Mai 2005, 21:58
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
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:41 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