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 Postmessage reagiert bei Win2000 anders als bei Win98 (https://www.delphipraxis.net/8149-postmessage-reagiert-bei-win2000-anders-als-bei-win98.html)

Tyrael Y. 29. Aug 2003 13:18


Postmessage reagiert bei Win2000 anders als bei Win98
 
Hallo zusammen,

ich starte und beende fremde applikationen.
Starten klappt wunderbar.
nur beim stoppen... also...
ich finde über Findwindow ein Handle zu meinem Fenster..
...p.s.: ich gebe bei FindWindow beide parameter an.. nciht das einer denkt ich habe den ersten parameter auf auf nil gesetzt...

über Postmessage beende ich mein Program durch WM_Quit

danach prüfe ich mit FindWindow solang bis es kein handle mehr gibt, damit ich sichr sein kann das das Programm weg ist...

bei NT-Systemen klapppt es wunderbar...
nur bei Win98 gibt mir Postmessage erfolg zurück, aber das Program was ich beenden wollte ist immer noch im SysTray...

ich prüfe mit nem Shellprogramm, ob das Programm noch da ist mittels FindWindow und GetClassName und EnumWindows, und es zeigt mir an das Programm wäre nicht mehr da,

... aber das Programm ist immer noch im Systray und lässt sich auch aufrufen....


wieso??

weiß einer Rat ?

Luckie 29. Aug 2003 13:26

Re: Postmessage reagiert bei Win2000 anders als bei Win98
 
Ganz einfach, weil du das Fenster geschlossen hast, aber nicht den Prozess beendet hast. Fenster <> Prozess.

BTW: Auch wenn du mit TerminateProcess, den Prozess abschießt, wirst du das Icon noch in der TNA haben so lange du nicht mit der Maus drüberfährst, weil der Prozess keine Möglichkeit mehr hat es zu entfernen.

Tyrael Y. 29. Aug 2003 13:32

Re: Postmessage reagiert bei Win2000 anders als bei Win98
 
..aber wieso klappt das bei win2000 einwandfrei?

Tyrael Y. 1. Sep 2003 16:23

Re: Postmessage reagiert bei Win2000 anders als bei Win98
 
... ich hab es mal mit TerminateProcess versucht und nicht nur das ...

...also ich krieg eine Prozess ID
... wenn ich über OpenProcess mir nen Handle holen will, schlägt es fehl

... mHandle := OpenProcess(PROCESS_TERMINATE, false, ProcID );

ich krieg kein Handle...

GetLastError liefert "Access is denied", aber auch egal mit welchem Prozess ich es versuche... :freak:

wat nu?

Luckie 1. Sep 2003 17:52

Re: Postmessage reagiert bei Win2000 anders als bei Win98
 
Eventuell brauchst du die Debug-Privilegien. Die kannst du dir aber nur als Admin holen.


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