Entwickler-Ecke
Sonstiges (Delphi) - Anderes Programm pausieren
bawa - Mi 24.09.08 18:54
Titel: Anderes Programm pausieren
Heyho,
ich habe eine kurze frage. Wie kann ich andere Programme pausieren?
Schonmal danke :)
Bawa
platzwart - Mi 24.09.08 18:57
bitte etwas präziser
Delete - Mi 24.09.08 19:03
man kann threads anhelten...
bawa - Mi 24.09.08 19:03
Okay dachte es wäre ersichtlich was ich meine.
Also ich möchte, dass ein anderes Programm (z.B. firefox) kurz pausiert wird (so wie wenn mal sleep(x) macht). Es soll sozusagen von meinem Programm eingefroren werden (So wie es Antivir mit programmen macht die eine virusmeldung auslösen, bis diese beantwortet ist)
Sinspin - Mi 24.09.08 19:17
Genau wie du das jetzt ansprichst, das Antivir das tut, würde ich sagen, das ist nichts für "Kinderhände"! Denn auf eben diese Weise könnte man dann auch Programme wie Antivir anhalten um einen Virus oder was anderes unfreudliches daran vorbei zu schmucklen.
Also schreib bitte nochmal genau um was für Programme es sich handelt die du anhalten willst.
Sind das Programme von dir oder Fremde?
bawa - Mi 24.09.08 19:41
Ich will lediglich einen Trainer für ein Spiel programmieren. Dieses setzt jedoch beim erhöhen der Rostoffe den wert gleich wieder zurück. Ich habe mir überlegt, dass man das mit pausieren des spiels möglicherweise umgehen könnte.
Hidden - Mi 24.09.08 19:51
Hi,
Ob dein Vorhaben legal ist, bin ich mir nicht so ganz sicher :roll: Der Programmierer wollte dies anscheinend verhindern, daher das Zurücksetzen.
Das wird aber sowieso so nicht gehen, da das Zurücksetzen damit nur Pausiert würde.
mfG,
Chryzler - Mi 24.09.08 19:55
bawa hat folgendes geschrieben: |
Ich habe mir überlegt, dass man das mit pausieren des spiels möglicherweise umgehen könnte. |
Sehr sehr unwarscheinlich.
AntiVir hält übrigens das andere Programm nicht explizit an, sondern "beantwortet" die Anfrage, auf eine Datei zuzugreifen erst dann, wenn die Warnmeldung bestätigt worden ist. Im Endeffekt wird dadurch natürlich das Programm, das auf die Datei zugreifen will, angehalten.
Sinspin hat folgendes geschrieben: |
Denn auf eben diese Weise könnte man dann auch Programme wie Antivir anhalten um einen Virus oder was anderes unfreudliches daran vorbei zu schmucklen. |
Eigentlich nicht, da dann AntiVir das Programm, das AntiVir anhalten will, schon erkennen sollte bevor es gestartet wird, vorrausgesetzt Signaturen sind dafür vorhanden.
jaenicke - Mi 24.09.08 20:55
Nun ja, der Process Explorer bietet die Möglichkeit ein Programm zu pausieren. Irgendwie muss das also gehen, auch ohne, dass schlicht ein Dateizugriff blockiert wird o.ä., aber wie der das macht habe ich keine Ahnung. Wenn ich mal Zeit finde könnte ich mal schauen ob ich das herausfinde, aber im Moment siehts da nicht gut aus.
Delete - Mi 24.09.08 23:19
Wenn du den richtigen Thread erwischt schon. Nu sollte man einen Thread nie von aussen anhalten oder gar beenden. Befindet r sich nämlich gerade in einer CriticalSection und man hält ihn an oder beendet ihn gar, dann warten sich die andren Threads zu Tode, die auf die Freigbae der CriticalSection warten.
Und wie schon gsagt wurde, hat entweder der Programmierer vorgesorgt und hat sein Programm dagegen abgesichert und dann ist es egal, ob du das Programm eine Sekunde oder drei Stunden anhälts. Der Code, der den Wert wieder zurücksetzt wird trotzdem ausgeführt. Oder du guckst an der falschen Stelle. Oder du machst grundsätzlich was falsch. Ich wüde auf letzteres tippen, denn wenn jemand so viel Ahnung hat, wie man einen Trainer schreibt, der sollte sich mit den grundlegenden API-Funktionen und Windows Interna auskennen oder zumindest wissen, wo er dieses Wissen herbekommt ohne fragen zu müssen.
Boldar - Do 25.09.08 00:04
Luckie hat folgendes geschrieben: |
Befindet r sich nämlich gerade in einer CriticalSection und man hält ihn an oder beendet ihn gar, dann warten sich die andren Threads zu Tode, die auf die Freigbae der CriticalSection warten.
|
Dann müsste man ja nur irgendwie feststellen, ob ein Thread in einer Critical Section ist... aber geht dass denn??
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!