AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

z.B. Taskkill erkennen

Ein Thema von ADelph · begonnen am 11. Dez 2018 · letzter Beitrag vom 12. Dez 2018
Antwort Antwort
Seite 2 von 3     12 3   
DieDolly

Registriert seit: 22. Jun 2018
897 Beiträge
 
#11

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 15:42
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.
  Mit Zitat antworten Zitat
Schokohase

Registriert seit: 17. Apr 2018
772 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 15:44
Nur eine Vermutung. Aber warum zerbrichst du dir wegen ein paar Nutzern den Kopf? Wenn die dein Programm per TaskManager abschießen und das Risiko korrupter Daten damit eingehen, ist das deren Problem.
kann man es beweisen? Die sagen, Daten sind kaputt, sie wissen von nichts.
Bei einer Transaktion sollten die Daten auf keinen Fall kaputt sein. Die sind entweder da oder nicht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
653 Beiträge
 
#13

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 17:01
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
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (11. Dez 2018 um 17:03 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
897 Beiträge
 
#14

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 17:04
Zitat:
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.
Das ist meiner Meinung nach schon unnötige Arbeit. Es gibt nicht nur den Windows TaskManager. Es gibt vermutlich Dutzende. Dann gibt es noch TASKKILL (über cmd) und und und.
Egal was man hier versucht umzusetzen, es ist Zeitverschwendung ... und auch Geldverschwendung.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)
Online

Registriert seit: 29. Mai 2002
37.192 Beiträge
 
Delphi 2006 Professional
 
#15

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 17:16
Ich hatte mir schon gedacht, dass es nicht einfach geht, bzw. gar nicht gehen könnte...schade, wäre nützlich...
Jupp. Und zwar für Malware.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
653 Beiträge
 
#16

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 17:48
Zitat:
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.
Das ist meiner Meinung nach schon unnötige Arbeit. Es gibt nicht nur den Windows TaskManager. Es gibt vermutlich Dutzende. Dann gibt es noch TASKKILL (über cmd) und und und.
Egal was man hier versucht umzusetzen, es ist Zeitverschwendung ... und auch Geldverschwendung.
Wenn es darum geht, dass ein Kunde immer das Programm per Taskmanager abschießt und anschließend behauptet er hätte nichts gemacht, dann könnte diese Methode schon helfen. In den aller meisten Fällen beschränkt sich das Wissen der "normalen" Benutzer auf den Taskmanager. Soweit ich das verstanden habe, geht es nicht darum alle Task-/Prozessmanager zu erkenne und zu umgehen.
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (11. Dez 2018 um 17:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.296 Beiträge
 
Delphi 7 Personal
 
#17

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 19:02
Moin,

ist es irgendwie möglich, in einem Delphi-Programm den Abbruch durch z.B. taskkill zu erkennen? Mir geht es darum z.B. noch 'hängende' Transaktionen etc. sauber beenden zu können, wenn ein Programm aus anderen Gründen hängen sollte und per z.B. Taskmanager 'abgeschossen' werden soll. Kann ich da irgendeine Message abfangen?

Hinweise sind sehr willkommen
Wenn mir ein Programm die Möglichkeit bietet es zu beenden (weil es augenscheinlich nichts mehr tut), brauch ich es auch nicht abzuschießen.

Denk mal darüber nach.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.316 Beiträge
 
Delphi 5 Professional
 
#18

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 19:31
Wenn es darum geht, dass ein Kunde immer das Programm per Taskmanager abschießt und anschließend behauptet er hätte nichts gemacht, dann könnte diese Methode schon helfen.
[...]
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.
Wäre es dann nicht besser, zu erkennen, ob ein Programm sauber beendet wurde, so wie es z.B. Windows und Firefox machen? Programm schreibt beim Starten ein Flag irgendwohin (Registry, Datei), dass das Programm NICHT sauber beendet wurde. Beim (sauberen) Beenden des Programms wird das Flag durch ein "wurde sauber beendet" ersetzt. Beim Starten des Programms kann so geprüft werden, ob es zuvor sauber beendet wurde.

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

Registriert seit: 10. Jun 2003
Ort: Berlin
7.185 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#19

AW: z.B. Taskkill erkennen

  Alt 11. Dez 2018, 20:10
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
464 Beiträge
 
Delphi 2009 Professional
 
#20

AW: z.B. Taskkill erkennen

  Alt 12. Dez 2018, 08:14
Delphi-Quellcode:
SchreibeLog('Ich tue jetzt was.');
TueWas();
SchreibeLog('Ich tue jetzt nichts mehr.');
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf