AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Externes Programm sofort beenden (ein Spiel!)
Thema durchsuchen
Ansicht
Themen-Optionen

Externes Programm sofort beenden (ein Spiel!)

Ein Thema von Lefko · begonnen am 20. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#11

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 14:43
Da steht:

also das is sowas wie Gothic oder so ein Grafik-Spiel eben Sorry daraus kann ich nicht sicher erkennen, dass das was fremdes ist.
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#12

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:14
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.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#13

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:19
Wenn man als Parameter false übergibt, dann kann man das Programm wieder starten, ohne das es sofort wieder beendet wird!
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#14

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:21
Fenstername steht normalerweiße im Taskmanager!

JUHUU!!! hundertster Beitrag
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#15

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:31
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.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#16

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:42
Wenn du das Programm nur einmal beenden (oder halt ins Timer ereigniss setzen willst) willst dann genügt:

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!
  Mit Zitat antworten Zitat
Benutzerbild von moin339
moin339

Registriert seit: 23. Sep 2002
Ort: Hamburg
136 Beiträge
 
#17

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 21. Nov 2003, 15:50
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
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#18

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 22. Nov 2003, 13:17
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.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#19

Re: Externes Programm sofort beenden (ein Spiel!)

  Alt 24. Nov 2003, 17:29
Oke, ich hab das jetz einfach ganz simpel mit

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

also, allet gelöst, kann dichtgemacht werden

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:07 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