Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Externes Programm sofort beenden (ein Spiel!) (https://www.delphipraxis.net/12097-externes-programm-sofort-beenden-ein-spiel.html)

Minz 21. Nov 2003 13:43

Re: Externes Programm sofort beenden (ein Spiel!)
 
Da steht:

Delphi-Quellcode:
also das is sowas wie Gothic oder so ein Grafik-Spiel eben
Sorry daraus kann ich nicht sicher erkennen, dass das was fremdes ist.

Lefko 21. Nov 2003 14:14

Re: Externes Programm sofort beenden (ein Spiel!)
 
Ja, ich nochmal!

@SleepyMaster: Sorry, der Text funktioniert doch! was soll passieren, wenn man SetRun(false,1,Progname); angibt? da passiert gar nix.

Und noch ne Frage: Ich hab ja den Fensternamen von diesen Spielen nicht! Kann man den irgendwie herausbekommen? (hab was von FindWindowByFileName gelesen irgendwo! geht sowas?)

bin für schnelle tipps sehr dankbar!

MfG Lefko.

SleepyMaster 21. Nov 2003 14:19

Re: Externes Programm sofort beenden (ein Spiel!)
 
Wenn man als Parameter false übergibt, dann kann man das Programm wieder starten, ohne das es sofort wieder beendet wird!

SleepyMaster 21. Nov 2003 14:21

Re: Externes Programm sofort beenden (ein Spiel!)
 
Fenstername steht normalerweiße im Taskmanager!

JUHUU!!! hundertster Beitrag ;)

Lefko 21. Nov 2003 14:31

Re: Externes Programm sofort beenden (ein Spiel!)
 
Zitat:

Zitat von SleepyMaster
Fenstername steht normalerweiße im Taskmanager!

Hm, echt? dann muss man um Diablo II zu beenden einfach SetRun(true,1,'DiabloII');
und für CounterStrike einfach SetRun(true,1,'cstrike'); schreiben?


Zitat:

Wenn man als Parameter false übergibt, dann kann man das Programm wieder starten, ohne das es sofort wieder beendet wird!
Versteh ich nicht, das Programm wird doch nur einmalig beendet? ich konnte Capicontrol sofort wieder starten ohne dass es beendet wurde. das prog is doch dann nicht dauerhaft gesperrt...



Danke, da bin cih schon viel weiter :)

aber zur sicherheit, wie kann ich den fensternamen den erlangen, wenn ich nur den namen der exe-datei hab? der ist doch nicht immer der selbe, ne?

MfG Lefko.

SleepyMaster 21. Nov 2003 14:42

Re: Externes Programm sofort beenden (ein Spiel!)
 
Wenn du das Programm nur einmal beenden (oder halt ins Timer ereigniss setzen willst) willst dann genügt:

Delphi-Quellcode:
if FindWindow(NIL,PChar(Programmname))<>0 then PostMessage(FindWindow(NIL,PChar(Programmname)), wm_close, 1, 1);
Der Rest ist eigendlich nur dafür da anstelle von Timern Threads zu nehmen (z.b.:NonVCL).

Aber das andere ist wesentlich einfacher:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FindWindow(NIL,'DiabloII')<>0 then PostMessage(FindWindow(NIL,'DiabloII'), wm_close, 1, 1);
if FindWindow(NIL,'cstrike')<>0 then PostMessage(FindWindow(NIL,'cstrike'), wm_close, 1, 1);
end;

Nimm also lieber das Zweite hier!

moin339 21. Nov 2003 14:50

Re: Externes Programm sofort beenden (ein Spiel!)
 
Moin!

wenn du verhindern willst das ein spiel erst gestartet wird, kannst du doch einfach einen globalen hook schreiben der das abfängt.
ciao, moin339 :coder:

Lefko 22. Nov 2003 12:17

Re: Externes Programm sofort beenden (ein Spiel!)
 
Zitat:

Zitat von moin339
wenn du verhindern willst das ein spiel erst gestartet wird, kannst du doch einfach einen globalen hook schreiben der das abfängt.

Leider hab ich von Hooks keine Ahnung, weiss nicht im geringsten, wie sowas geht, aber wenn du mir da behilflich sein könntest und das eine Sichere Methode ist, wäre ich dankbar :)

MfG Lefko.

Lefko 24. Nov 2003 16:29

Re: Externes Programm sofort beenden (ein Spiel!)
 
Oke, ich hab das jetz einfach ganz simpel mit

Delphi-Quellcode:
if FindWindow(nil, Programm) <> 0 then PostMessage(..programm.....wm_close...)
gemacht und es klappt wunderbar...

also, allet gelöst, kann dichtgemacht werden :)

MfG Lefko.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 2 von 2     12   

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