Prozess beenden "Zugriff verweigern"

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Prozess beenden "Zugriff verweigern"

    hallo,
    ich würde gerne verhindern das mein Programm über den Taskmgr geschlossen werden kann ohne ihn abzustellen.
    Man kennt es ja von verschiedenen Programmen, bei denen dann kommt:
    Prozess kann nicht beendet werden, Zugriff verweigert.

    Wie mach ich das am besten?

    Gruß
    Rikudo
    C# Developer
    Learning C++

    VB.NET-Quellcode

    1. Private Sub FormMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. e.Cancel = True
    3. End Sub




    Vielleicht hilft es dir auch etwas mit dem CloseReason(warum soll das Programm geschlossen werden) zu arbeiten:

    VB.NET-Quellcode

    1. CloseReason.ApplicationExitCall
    2. CloseReason.FormOwnerClosing
    3. CloseReason.MdiFormClosing
    4. CloseReason.None
    5. CloseReason.TaskManagerClosing
    6. CloseReason.UserClosing
    7. CloseReason.WindowsShutDown


    Wenn dann zB.

    VB.NET-Quellcode

    1. TaskManagerClosing
    kommt einfach den Taskmgr per Process.Kill töten und den Vorgang abbrechen.

    3Angle schrieb:

    kommt einfach den Taskmgr per Process.Kill töten und den Vorgang abbrechen.


    Hast das mal vorher probiert, bevor Du es postest? Das klappt nämlich nicht.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Du kannst das Terminieren eines Processes nicht verhindern. Das gibt es nichts zu erklären. Wenn Du meinst, Dein Prozess sei so unglaublich wichtig, dann bau einen Service ein, der die Existenz Deines Programmes regelmässig prüft. Mir ist kein Weg bekannt, wie man einen Prozess als Systemkritisch kennzeichnet, damit der Zugriff verweigert wird. Schlags Dir einfach aus dem Kopf.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Es gibt schon Wege das zu tun. z.B. kann das ja auch ein Antivirus system(das trägt sich halt irgendwo also solches ein).
    Was du auch tun kannst ist TerminateProcess zu hooken. Jedoch wird das bei weitem deine Kompetenz überschreiten. Ansonsten fällt mir nix ein.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Rikudo schrieb:

    Wie mach ich das am besten?
    Ist das irgend so ein Hacker-Mist? :thumbdown:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Rikudo schrieb:

    Wie mach ich das am besten?
    Ist das irgend so ein Hacker-Mist? :thumbdown:

    Nein, ist es nicht.
    Es handelt sich um eine Anwendung die dem User ein Internet-Limit geben soll. Also beispielsweiße pro tag 2 Std oder so... und diese Anwendung soll nicht beendet werden.
    Btw, warum denkt eigentlich jeder das man einen Hack schreiben will sobald man mal etwas über Prozess Hiden, blocken etc fragt...?
    C# Developer
    Learning C++
    Weil die, die nix zu verbergen haben, ihr Anliegen in den Eröffnungspost schreiben, und das hat bei Dir gefehlt. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Meins war nur eine Idee, sonst muss man halt zur altgeliebten Windows API greifen, wie bereits schon gesagt wurde.

    Aber es gibt einige Möglichkeiten dein Programm.

    Einmal per Extraprozess und einer Programmpipeline, sofern ein Programm beendet ist (Pipeline tot) diese dementsprechend behandeln.

    Oder das Programm bei 32 Bit System zu verstecken ist auch möglich, sofern es nur um den Standart Taskmanager geht (Einfach mal googlen).

    Die Idee mit dem, wie es ein AntiVirus macht ist weniger effektiv, denn zB. Avast! habe ich damals in 5 Minuten Probierarbeit beenden können, trotz Systemeinfriersperre und Neustarrzeugs usw. Der Support antwortete mir damals mit einem: Das können wir nicht verhindern!