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.
Natürlich kann man das auch so machen. Dann weißt du aber immer noch nicht, ob dein Programm "abgeraucht" ist, oder ob der Benutzer es mutwillig mit dem Taskmanager beendet.
Ich gehe mal ganz stark davon aus, das TE eine Möglichkeit zum Beenden eingebaut hat. Also bin ich auf Grund seiner Beiträge davon ausgegangen, dass er einem Benutzer nachweisen will, dass er dort was macht, was er nicht machen soll. Ich könnte mir vorstellen, dass ggf. irgendwo eine längere Routine im Mainthread läuft. Der Benutzer klickt nun auf der Form rum, das Programm reagiert seiner Meinung nach nicht (vielleicht meldet auch Windows "Das Programm reagiert nicht") und schon wird, je nach User, schnell der Taskmanager gezückt.
Vielleicht will der TE im ja genau dieses Verhalten nachweisen.
Was aber genau, das weiß nur der TE persönlich.