Autor Beitrag
bawa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49



BeitragVerfasst: Mi 24.09.08 18:54 
Heyho,
ich habe eine kurze frage. Wie kann ich andere Programme pausieren?

Schonmal danke :)

Bawa
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 24.09.08 18:57 
bitte etwas präziser
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.09.08 19:03 
man kann threads anhelten...
bawa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1335
Erhaltene Danke: 118

Win 10
RIO, CE, Lazarus
BeitragVerfasst: 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?

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
bawa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Mi 24.09.08 19:55 
user profile iconbawa 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.
user profile iconSinspin 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Mi 24.09.08 21:07 
Ich tippe mal auf SuspendThread und ResumeThread. user profile iconLuckie meinte aber mal, dass es mit dem allein nicht getan ist, glaub ich.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.09.08 23:19 
user profile iconChryzler hat folgendes geschrieben:
Ich tippe mal auf SuspendThread und ResumeThread. user profile iconLuckie meinte aber mal, dass es mit dem allein nicht getan ist, glaub ich.

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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Do 25.09.08 00:04 
user profile iconLuckie 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??