![]() |
Starten und Stoppen einer Applikation
Hallo erst einmal,
innerhalb meines Programs möchte ich gerne bestimmte Applikationen, die auf dem Rechner laufen starten bzw. stoppen. Starten kann ich sie wahrscheinlich mit ShellExec, aber wie stoppe ich eine Applikation ? Weiss einer Rat ? Grüße Tyrael |
Re: Starten und Stoppen einer Applikation
In der CodeLibrary findest Du wahrscheinlich einige Möglichkeiten herauszubekommen, wie das Handle der Anwendung ist. Wenn Du das weisst, kannst Du mit SendMessage die Nachricht WM_QUIT an die Anwendung senden. Das sollte diese zum Beenden bewegen ;-)
...:cat:... |
Re: Starten und Stoppen einer Applikation
...ok danke dir, werde es mal ausprobieren :spin:
|
Re: Starten und Stoppen einer Applikation
Oder starte sie mit ShellexecuteEx, dann hast du die ProcessID mit der du dann den Prozess auch wieder beenden kannst.
|
Re: Starten und Stoppen einer Applikation
..ähm... :roll: ...also noch mal ausführlich..
Ich schicke einen Buffer mit einigen Informationen zu meinem Client Program. Diese Program läuft auch auf einem Client Rechner, was aber hierfür unerheblich ist, sie kann auch lokal laufen. Auf dem Client Rechner laufen bestimmte Programme oder eben ahlt auch nicht. Laufende Programme müssen jetzt gestoppt werden können. Dazu sei gesagt, einige der Programme laufen im Fenster andere nur im Hintergrund. Das heißt ich muss diese Programme jeweils anders behandeln, da mir einmal ein Window Handle zur Verfügung steht und im anderem Fall ebend nicht. Das Starten der Programme habe ich hingekriegt .. If AppName = MeinemBuffer[0] then ShellExec( 0, 'Open', AppName + '.exe', '', Path, SW_SHOW) else if AppName = MeinemBuffer[1] then ShellExec( 0, 'Open', AppName + '.exe', '', Path, SW_HIDE); nur das stoppen muss ich mir jetzt mal was überlegen.. ..danke für die Tips Grüße Tyrael |
Re: Starten und Stoppen einer Applikation
@sakura das mit deem WM_QUIT wollte ich mal ausprobieren und habe folgendes geschrieben..
Handle := FindWindow(nil, progName); Windows.SendMessage(Handle, WM_QUIT,0,0); ... nur WM_QUIT ist nicht definiert erzählt mir ein Compiler ... wenn ich WM_QUIT als Cardinal definiere.. krieg ich die Meldung das WM_QUIT nicht initialisert worden ist, wie kann ich dennn WM_QUIT als Windows Nachricht nutzen ? danke schon mal schöne Grüße Tyrael |
Re: Starten und Stoppen einer Applikation
äh, :oops: , sry habe vergessen die unit messages einzubinden jetzt kennt er WM_QUIT...
....aber es funktioniert trotzdem nicht ... ich glaube es liegt an FindWindow, da ich den ersten Parmater auf nil setzte... FinWindow ist so definiert FindWindow(ClassName, WindowName).. ..ich benutze es um ein Handle auf das Fenster zu kriegen... weiss einer Rat wie ich den Classname rausfinde ?? |
Re: Starten und Stoppen einer Applikation
Als Tool um die Classnames rauszufinden kann ich WinForce empfehlen...
![]() Erst lässt man die Prozesse auflisten (Pfeil-Icon), dann "zieht" man das WinForce-Icon auf das Fenster dessen Klasse man rausfinden will und lässt die Maustaste los WinForce zeigt dann Informationen wie Classname, WindowHandle, ParentWindow u.a. an Das Proggy kann noch mehr aber das wäre dann wohl [OT] ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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