![]() |
AW: z.B. Taskkill erkennen
Die beste AntiTaskKillMethode bringt doch eh nix. Zieh dem PC den Strom und du hast das gleiche Problem wenn es keine USV gibt.
Das sind Lösungen für Probleme, die man am besten gar nicht erst angehen sollte. Sowas würde ich eher in den Lizenzbedingungen des Programms festhalten und mich absichern. |
AW: z.B. Taskkill erkennen
Zitat:
|
AW: z.B. Taskkill erkennen
Mach dir doch einfach einen Thread, der laufend alle laufenden Prozesse auflistet und wenn z.B. Taskmgr (und ggf. noch andere Prozessmanager) dabei ist, dieses logged. Zusätzlich lässt du den Thread selbst per was ins log schreiben. Wenn nun der Taskmanager aufgerufen wurde und dann von deinem Thread kein Logeintrag mehr kam, kannst du davon ausgehen, dass der Prozess abgeschossen wurde.
Ist zwar zusätzlicher Traffic, aber so könnte ich mir vorstellen, könntest du das beweisen. Bringt natürlich alles nix, wenn, wie Dolly schon sagt, jemand den Strom abschaltet. Es gibt ja so Menschen, die sind so pfiffig und schalten den PC über eine Mehrfachsteckdose mit Schalter aus ;-) |
AW: z.B. Taskkill erkennen
Zitat:
Egal was man hier versucht umzusetzen, es ist Zeitverschwendung ... und auch Geldverschwendung. |
AW: z.B. Taskkill erkennen
Zitat:
|
AW: z.B. Taskkill erkennen
Zitat:
Und wenn mir ein Kunden Datenverlust unterstellen will, ich aber in der Annahme bin, dass er es selbst verursacht, dann ist das für mich keine Zeit- oder Geldverschwendung. Eher im Gegenteil. Denn wenn ich ihm im Zweifelsfall nachweisen kann, dass er das Problem durch falsche Handhabung selbst verursacht hat, dann könnte ich ihm den Aufwand in Rechnung stellen und nicht er mir den Datenverlust. (Immer mal davon ausgegangen, dass es auch so ist, und TE es so gemeint hat und nicht andere Programmierfehler dafür verantwortlich sind). Wenn es natürlich aus anderen Gründen "hängt" und der Benutzer gezwungen ist, das Programm abzuschießen, nützt das alles nichts. Und wenn er Taskkill verwendet sowieso nicht, weil das im Gegensatz zum Taskmanager sich sofort wieder beendet, also nur schwer zu erfassen ist. Also gehe ich in meinem Vorschlag lediglich von dem Taskmgr aus. |
AW: z.B. Taskkill erkennen
Zitat:
Denk mal darüber nach. Gruß K-H |
AW: z.B. Taskkill erkennen
Zitat:
Es gibt so viele Varianten, wie man Programme unsauber beenden kann, dass man sich weniger auf diese vielen verschiedenen Methoden konzentrieren sollte, und mehr darauf, ob es sauber beendet wurde. Unabhängig davon ist die gestellte Frage durchaus interessant. Was nicht notwendigerweise bedeutet, dass die gesuchte Methode geeignet ist, das/die bestehende Problem/Aufgabe zu lösen/erfüllen ;). Grüße Dalai |
AW: z.B. Taskkill erkennen
Prinzipiell macht es eher Sinn wie z.B. Eclipse auf Multithreading und gut getrennte GUI-Logik zu setzen. Dann kann die Oberfläche kaum hängen bleiben.
Einen Taskkill kann man tatsächlich rein theoretisch verhindern indem man etwas Schindluder mit Sockethandles treibt. Dann verhindert Windows selbst nämlich das Beenden des Tasks. Aus nahe liegenden Gründen möchte ich das hier nicht weiter erörtern auch wenn das Problem seit Windows 8 größtenteils gelöst ist. Für das aktuelle Problem würde es auch nichts bringen, denn man verhindert nicht nur einen Taskkill, sondern man kann das eigene Programm dann leider auch selbst nicht mehr beenden (zumindest habe ich noch keine Möglichkeit gefunden). Und falls man in der Vergangenheit Probleme mit Hängern hatte, die man nicht finden konnte, kann dort z.B. Eurekalog helfen. Das schreibt nicht nur bei Exceptions Bugreporte, sondern kann das auch machen, wenn das Programm eine einstellbare Zeit nicht mehr reagiert. Die von Dalai genannten Flags zur Erkennung eines sauberen Herunterfahrens kann man z.B. mit Logs im Systemeventlog kombinieren, wenn so Probleme erkannt wurden. |
AW: z.B. Taskkill erkennen
Delphi-Quellcode:
SchreibeLog('Ich tue jetzt was.');
TueWas(); SchreibeLog('Ich tue jetzt nichts mehr.'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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 by Thomas Breitkreuz