![]() |
Mit TShellExecuteInfo Programm schließen?
Hallo,
ich starte ein externes Programm mit
Delphi-Quellcode:
und hatte gehofft, mit
ShellExecuteEx(x: TShellExecuteInfo)
Delphi-Quellcode:
das Handle zum gestarteten Programm zu haben, mit dem ich das mittels
x.hProcess
Delphi-Quellcode:
wieder beenden kann.
SendMessage(x.hProcess, WM_CLOSE, 0, 0);
Das Handle stimmt aber nicht. Kann ich mit der Information in der TShellExecuteInfo-Struktur x trotzdem das gestartete Programm identifizieren und stoppen? |
AW: Mit TShellExecuteInfo Programm schließen?
![]() ![]() aber du hast ein Prozess-Handle (HANDLE). Man kann via ![]() Wie dem auch sei, du mußt dir also erstmal ein Fenster oder den/alle Threads des anderen Programms suchen, dessen Prozess-ID du ebenfalls bekommen hast. ![]() ![]() |
AW: Mit TShellExecuteInfo Programm schließen?
Eine interessante Alternative die ich mal gesehen hatte, war es mit
![]() ![]() |
AW: Mit TShellExecuteInfo Programm schließen?
Würden dabei gute Antivirenprogramme, also nicht Avira, nicht anschlagen?
|
AW: Mit TShellExecuteInfo Programm schließen?
Zitat:
|
AW: Mit TShellExecuteInfo Programm schließen?
Zitat:
|
AW: Mit TShellExecuteInfo Programm schließen?
Andersherum: du könntest mit EnumWindows über alle Toplevel-Fenster iterieren und dann mit GetWindowThreadProcessID prüfen, ob das aktuelle Fenster zum gemerkten Prozess gehört.
|
AW: Mit TShellExecuteInfo Programm schließen?
Zitat:
Welches Handle? :zwinker: Eine Anwendung kann mehrere Fenster haben und jedes Control auf den Fenstern ist auch ein "Window-Control" mit einem HWND. ![]() ![]() ![]() ![]() oder Dergleichen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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