Der Prozess kann nicht abgebrochen werden

1411
Nick Tritsis

Ich arbeitete für eine Übung in c mit Codeblocks. Als ich fertig war, habe ich es kompiliert und ausgeführt.

Anstatt ordnungsgemäß zu laufen, war das Cmd-Fenster leer, es konnte keine Eingabe entgegennehmen und keine Ausgabe anzeigen. Ich googelte ein bisschen und fand Leute, die ein ähnliches Problem hatten, wobei die Prozesse in ihrem Task-Manager stecken.

Ich habe die Prozesse (cmd Übung1) von dort anfangs beendet, aber Codeblocks verhielten sich wie zuvor.

Ich googelte etwas weiter und erfuhr etwas über Process Explorer und Process Hacker. Ich habe beide probiert, aber ohne Glück. Im Prozess-Explorer stecke ich mit zwei Prozessen fest. Ich kann sie nicht beenden oder neu starten oder mit dem neu starten, was ich bisher versucht habe.

Als Codeblocks kompiliere ich, wenn ich versuche, etwas mit Exercise1.c (der Datei, die festgefahren ist) zu tun, mit dem Fehler "Permission Denied" und wird nie richtig ausgeführt. Bitte helfen Sie :)

2
Was meinst du mit "kann nicht beendet werden"? Was bekommen Sie, wenn Sie versuchen, es mit dem Task-Manager zu töten? David Dai vor 8 Jahren 0
@DavidDai Ich bekomme eine Fehlermeldung "Zugriff verweigert" Nick Tritsis vor 8 Jahren 0

1 Antwort auf die Frage

2
рüффп

Es erinnert mich daran, als ich Windows Services programmierte, und es war auch unmöglich, den Windows Task-Manager zu verwenden.

Um dies zu beheben, mussten wir einen Code EnableDebugPrivAndRun.cppfinden, der in eine ausführbare Datei übersetzt wurde, und dann den Task-Manager mit folgendem Befehl starten:

C:\>EnableDebugPrivAndRun.exe TaskMgr.exe 

Damit konnte der Task-Manager jeden Prozess beenden. Achtung, auch die Windows-Kernprozesse können beendet werden (wie lsass.exe in Windows 2000) und Sie bekommen nur einen eingefrorenen Rechner.

Sie können den Code und den vollständigen Artikel immer noch in diesem Microsoft-Artikel finden . Der Code ist verfügbar, wenn Sie auf den aufgerufenen Link klicken Figure 3.

Ich habe das vor langer Zeit auf Windows NT4- und Windows 2000-Computern verwendet. Ich bin mir nicht sicher, ob es noch für die neueste Version von Windows funktioniert, und vielleicht würde ein solches Tool jetzt von Microsofts neuester Entwicklungsumgebung bereitgestellt.

UPDATE: Anscheinend haben andere Benutzer in dieser SuperUser-Frage eine Lösung gefunden, und ich habe auch ein Windows-Debugging- Programm gefunden, das einen killBefehl enthält, der auch die Aufgabe erfüllen sollte.

Auszug aus der MSDN-Site:

Debugging-Tools für Windows (WinDbg, KD, CDB, NTSD)

3 Möglichkeiten, Debugging-Tools für Windows zu erhalten:

  • Installieren Sie Microsoft Visual Studio als Teil des WDK und anschließend das Windows Driver Kit (WDK). Debugging-Tools für Windows sind im WDK enthalten.

  • Als Teil des Windows SDK Installieren Sie das Windows Software Development Kit> (SDK). Debugging-Tools für Windows sind im Windows SDK enthalten.

  • Als Standalone-Tool-Set Wenn Sie nur die Debugging-Tools für Windows herunterladen möchten, installieren Sie das Windows SDK. Wählen Sie während der Installation das Feld Debugging-Tools für Windows aus, und deaktivieren Sie alle anderen Kontrollkästchen.

Das Debugging-Toolkit ist hier verfügbar .

Hey, ich habe den Code aus Abbildung 3 erhalten und in eine ausführbare Datei kompiliert. Nick Tritsis vor 8 Jahren 0
Cmd hochgefahren:> CD-Desktop (wo ich die EXE-Datei abgelegt habe)> EnableDebugPrivAndRun.exe (mit TaskMgr.exe und dann procexp.exe), aber keiner davon hat funktioniert, also denke ich, dass EnableDebugPrivAndRun für Windows 10 veraltet ist, wie Sie gesagt haben: - / Es ist eine Schande, der Artikel war ziemlich gut und war ziemlich nach meinem Problem. Gibt es Hinweise, wo ich etwas Ähnliches für eine aktuelle Version von Windows finden kann? Nick Tritsis vor 8 Jahren 0
Ich habe andere Alternativen für Windows gefunden (seit Version Win7). Am schnellsten ist es wahrscheinlich, das Windows SDK herunterzuladen und nur die Debugging-Tools zu installieren (neueste Option in meinem Update beschrieben). Dann sollten Sie über das Programm kill.exe verfügen, um Ihre Anwendung beenden zu können. рüффп vor 8 Jahren 0
Ok, hört sich nach einem Plan an! So ziemlich alles, was neuer als win7 ist, ist kompatibel! Ich erkundige mich auch bei meinem Lehrer (ich gehe in das Labor, in dem mein C-Kurs stattfindet) nach einer möglichen alternativen Lösung. Hat er in seinen Dienstjahren etwas Ähnliches gesehen? Ansonsten gehe ich zum SDK, wenn ich wieder zu Hause bin. Danke für deine Zeitkollegin :) Nick Tritsis vor 8 Jahren 0
Ich bin auch über die von Ihnen zuvor angegebene [Super User-Frage] (http://superuser.com/questions/109010/kill-a-process-which-says-access-denied) gestolpert. Hauptantwort schlägt vor, Prozesshacker einen Versuch zu geben ... Hat nicht geklappt. Ich würde Sie ohne meine eigene Forschung nicht belästigen! Nick Tritsis vor 8 Jahren 0
Das ist großartig, danke. Hier ist der SDK-Link für Windows 10: https://developer.microsoft.com/windows/downloads/windows-10-sdk Martin Hansen vor 5 Jahren 0
Ich habe auch kill.exe als eigenständige Datei hochgeladen, sodass Sie das 500-MB-SDK nicht herunterladen müssen. Sie können die Dateiintegrität mit VirusTotal überprüfen. https://drive.google.com/open?id=1nwZjRHG4vSrLGGpVATg7c_M_M7XyBoiD Martin Hansen vor 5 Jahren 0