Seite 1 von 2
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 11:00
von Pyanfänger
Naja
1. er findet den key nich, das is ja das problem =S
2. ich hab in meiner registry nix mt python

Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 11:17
von EyDu
Pyanfänger hat geschrieben:1. er findet den key nich, das is ja das problem =S
Deshalb sollst du es ja auch schrittweise mit Regedit kontrollieren.
Pyanfänger hat geschrieben:2. ich hab in meiner registry nix mt python

Das ist ein Beispiel. Du sollst das natürlich auf deinen Code adaptieren.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 11:50
von Hyperion
Der OP könnte ja auch mal einen Export aus RegEdit hier reinstellen - also nur von der besagten Stelle. Alleine daran ließen sich ja eventuelle Typos ablesen
Ich würde bei Pfadangaben auch auf RawStrings zurückgreifen:
Code: Alles auswählen
python = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Python\PythonCore")
Damit spart man sich das Escapen von Pfadangaben.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 14:11
von Pyanfänger
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 14:14
von Hyperion
Bitte poste das doch in einem Pastebin, wie etwa gist.github.com oder dem in diesem Forum verlinkten. Rapidshare mag hier kaum jemand
Und exportiere bitte nicht Deine *gesamte* Registry, sondern nur den Zweig, der hier interessant ist. (Evtl. hast Du das schon richtig gemacht - ich habe mir die Datei nicht herunter geladen)
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 14:17
von Pyanfänger
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 14:28
von Hyperion
Und nun noch den Python-Code, mit dem Du darauf zugreifen willst und die exakte dazugehörige Fehlermeldung.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 14:59
von Pyanfänger
Code: Alles auswählen
import sys, _winreg
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList\\Universum")
setValue(key, REG_DWORD, 1)
CloseKey(key)
Fehler :
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Users\-----\Desktop\test.py", line 3, in <module>
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList\\Universum")
WindowsError: [Error 2] The system cannot find the file specified
als odne pfad habe ich schon zig mal geändert - daran sollte es nicht liegen =S
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 15:24
von Hyperion
Ich hoffe Dir ist klar, dass die beiden letzten Zeilen im Code nicht klappen werden, sofern der Fehler davor gelöst worden ist?
Hast Du denn mal einen anderen Key auslesen können? Hast Du es mal simpel in einer Python-Shell probiert, wie S4rl es Dir so schön demonstriert hatte?
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 15:41
von Pyanfänger
Ja mir is klar dass die letzten zeilen nciht funktionieren solang die ersten 2nicht funktionnieren
Und ja in der shell habe ic hes auch shon probiert... Gleiches resultat wie s4rl, außer dass wenn ich es mit meinem pfad probiere es eben die datei nicht finden konnte.
PS: das komische ist dass ich in regedit nich den pfad von s4rl sehe... aber funktionnieren tut er dennoch
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 16:59
von Hyperion
Hast Du es denn schon mal Schritt für Schritt probiert? Ab welcher Stelle im Schlüsselpfad geht es denn nicht mehr?
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 17:05
von Leonidas
Pyanfänger hat geschrieben:Ja mir is klar dass die letzten zeilen nciht funktionieren solang die ersten 2nicht funktionnieren

Na selbst wenn die ersten funktionieren, tun die anderen nicht weil völlig falsch.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Sonntag 22. Juli 2012, 17:31
von Pyanfänger
@Hyperion
Ab SpecialAccounts. Also es geht bis WinLogon..(SpecialAccounts is das was ich selber angelegt habe.)
@Leonidas oh... habs grad gemerrkt

Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Montag 23. Juli 2012, 12:20
von Sr4l
Wenn es bis Winlogon geht dann machst du:
Code: Alles auswählen
import _winreg
winlogon = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon")
try:
i = 0
while True:
print repr(_winreg.EnumKey(winlogon, i))
i += 1
except WindowsError:
pass
Was kommt dabei raus?
In der regedit scheint als Name alles erlaubt zusein, war mir vorher auch nicht klar. Es ist sogar erlaubt einen Key mit einem Leerzeichen zu beginnen oder zu beenden.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Montag 23. Juli 2012, 13:11
von EyDu
@Sr4l: Ich finde das händische Hochzählen des Zählers irgendwie ganz schön anstrengend:
Und noch so als Randbemerkung: "python funny cats" hat es tatsächlich schon auf den dritten Rang gebracht. Interssant ist, dass ein anderer Thread verlinkt ist.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Montag 23. Juli 2012, 20:27
von Sr4l
EyDu hat geschrieben:@Sr4l: Ich finde das händische Hochzählen des Zählers irgendwie ganz schön anstrengend:
Danke, ich habe das mal zum Anlass genommen mir functools und itertools nochmal anzuschauen, zwei Bibliotheken die ich viel zu selten einsetze.
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Mittwoch 25. Juli 2012, 08:34
von Pyanfänger
Thx, werde es ausprobieren
EDIT://
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Mittwoch 25. Juli 2012, 21:13
von Sr4l
Verwirrend.
Im Endeffekt sagt die Ausgabe das dein Key Special Accounts nicht existiert. Da kann ich dir nicht helfen warum es ein Differenz zwischen der Ausgabe des Scripts und von regedit gibt.
Probier vll nochmal folgendes nur um alles zu sehen:
Code: Alles auswählen
import itertools
import _winreg
winlogon = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon")
print "Keys:"
try:
for i in itertools.count():
print repr(_winreg.EnumKey(winlogon, i))
except WindowsError:
pass
print
print "Values:"
try:
for i in itertools.count():
print _winreg.EnumValue(winlogon, i)[0]
except WindowsError:
pass
Beispiel Ausgabe Windows 7 aktuelles Patchlevel
Windows 7 hat geschrieben:Keys:
'GPExtensions'
'AutoLogonChecked'
Values:
ReportBootOk
Shell
PreCreateKnownFolders
Userinit
VMApplet
AutoRestartShell
Background
CachedLogonsCount
DebugServerCommand
ForceUnlockLogon
LegalNoticeCaption
LegalNoticeText
PasswordExpiryWarning
PowerdownAfterShutdown
ShutdownWithoutLogon
WinStationsDisabled
DisableCAD
scremoveoption
ShutdownFlags
AutoAdminLogon
DefaultUserName
DefaultDomainName
Re: Python - Auf regedit zugreifen und etwas verändern?
Verfasst: Donnerstag 26. Juli 2012, 09:40
von Pyanfänger
Thx

!
Jetzt zeigt er dass an:
Code: Alles auswählen
Keys:
'GPExtensions'
Values:
ReportBootOk
Shell
PreCreateKnownFolders
DefaultDomainName
DefaultUserName
Userinit
VMApplet