Seite 1 von 1

Löschung des Registrierungsschlüssels

Veröffentlicht: 25. Oktober 2018 – 19:57 Uhr
von f4242
Guten Morgen,

Ich versuche, einen Registrierungsschlüssel in meinem Eraser-Installationspaket zu löschen.

Zuerst habe ich versucht, die native Methode von WAPT zu verwenden:

Code: Alle auswählen

registry_deletekey(root=HKEY_LOCAL_MACHINE, path=r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', keyname=r'c:\Program Files\Eraser\Eraser.exe')
Die Installation verlief erfolgreich, die Demontage jedoch misslang.

Dann habe ich es mit

Code: Alle auswählen

run(r'reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "c:\Program Files\Eraser\Eraser.exe" /f')
Aber es macht mich wütend:
CalledProcessErrorOutput: Der Befehl 'reg delete "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers" /v "c:\\Program Files\\Eraser\\Eraser.exe" /f' lieferte den Exit-Status 1 ungleich Null zurück.
Ausgabe: u"Fehler: Das System konnte den angegebenen Registrierungsschlüssel oder -wert nicht finden.\r\n"
Wenn ich jedoch "run" durch "print" ersetze und die Zeichenkette als Administrator in die Eingabeaufforderung kopiere und einfüge, funktioniert das Löschen einwandfrei.

Was ist mein Problem?

DANKE!

Betreff: Löschen eines Registrierungsschlüssels

Veröffentlicht: 25. Oktober 2018 - 20:04 Uhr
von dcardon
Hallo f4242,
f4242 schrieb: 25. Okt. 2018 - 19:57 Uhr Ich versuche, einen Registrierungsschlüssel in meinem Eraser-Installationspaket zu löschen.

Zuerst habe ich versucht, die native Methode von WAPT zu verwenden:

Code: Alle auswählen

registry_deletekey(root=HKEY_LOCAL_MACHINE, path=r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', keyname=r'c:\Program Files\Eraser\Eraser.exe')
Die Installation verlief erfolgreich, die Demontage jedoch misslang.

Dann habe ich es mit

Code: Alle auswählen

run(r'reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "c:\Program Files\Eraser\Eraser.exe" /f')
Aber es macht mich wütend:
CalledProcessErrorOutput: Der Befehl 'reg delete "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers" /v "c:\\Program Files\\Eraser\\Eraser.exe" /f' lieferte den Exit-Status 1 ungleich Null zurück.
Ausgabe: u"Fehler: Das System konnte den angegebenen Registrierungsschlüssel oder -wert nicht finden.\r\n"
Wenn ich jedoch "run" durch "print" ersetze und die Zeichenkette als Administrator in die Eingabeaufforderung kopiere und einfüge, funktioniert das Löschen einwandfrei.

Was ist mein Problem?
Es liegt wahrscheinlich ein Problem mit der WOW64-Umleitung vor (ein 32-Bit-Prozess greift nicht auf dieselbe Registry zu wie ein 64-Bit-Prozess). Sie können Folgendes versuchen:

Code: Alle auswählen

with disable_file_system_redirection():
    registry_deletekey(root=HKEY_LOCAL_MACHINE, path=r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', keyname=r'c:\Program Files\Eraser\Eraser.exe')
Aufrichtig,

Denis

Betreff: Löschen eines Registrierungsschlüssels

Veröffentlicht: 25. Oktober 2018 – 20:29 Uhr
von f4242
Hallo, mit registry_deletekey funktioniert es nicht , aber meine Alternative mit run in einem with- Block funktioniert. Danke!




Betreff: Löschen eines Registrierungsschlüssels

Veröffentlicht: 25. Oktober 2018 – 20:44 Uhr
von dcardon
Guten Abend f4242,

f4242 schrieb: 25. Okt. 2018 - 20:29 Uhr Mit registry_deletekey funktioniert es nicht , aber meine Alternative mit run in einem with- Block funktioniert.
Könnten Sie versuchen, WOW6432node hinzuzufügen?

Code: Alle auswählen

registry_deletekey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers', r'c:\Program Files\Eraser\Eraser.exe')
Aufrichtig,

Denis

Betreff: Löschen eines Registrierungsschlüssels

Veröffentlicht: 26. Oktober 2018 – 16:39 Uhr
von f4242
Hallo,

nein, es funktioniert immer noch nicht.

Ich nutze noch Version 1.3.13; ich weiß nicht, ob es sich um einen Fehler handelt, der in Version 1.5/1.6 bereits behoben wurde.