Seite 1 von 1
_winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:12
von The Hit-Man
Ich würde gerne mit dem Modul _winreg einen Schlüssel erstellen, um ein Programm autostarten zu lassen. Bis jetzt bin ich immer so vorgegangen:
Code: Alles auswählen
myreg = 'reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "mein_programm.exe" /t "REG_SZ" /d '
reg_command = myreg + '"'+MeineExe+'"'+' /f'
os.system (reg_command)
Allerdings funtzt das nicht mehr unter windows 2000

wie kann ich denn diesen Schlüssel mit der _winreg vernünftig setzen?
Da ich aus der Unix Welt komme, kenne ich mich mit der Registry nicht besonders aus. Habe aus diesem Forum eben nur erfahren, welchen Schlüssel man setzen muß, um einen Autostarteintrag zu erstellen.
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:17
von Xynon1
Ich habe leider kein win2k da, aber sieh mal in der Registry nach, ob HKCU überhaupt noch existiert, der ist soweit ich weiß in HKEY_CURRENT_USER umbenannt wurden, also prüf mal ob es den deinen Pfad in der Registry noch gibt. Ansonsten wird sich wohl nicht viel geändert haben.
Edit: So die Registry zu manipulieren ist aber auch nicht schön
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:34
von The Hit-Man
Edit: So die Registry zu manipulieren ist aber auch nicht schön
ja, meine ich auch. nur da ich ne schnelle lösung brauchte, habe ich es quick und dirty gemacht. weiß leider noch keine andere lösung.
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:40
von Xynon1
Sollte auch so gehen
Code: Alles auswählen
import _winreg as winreg
if __name__ == "__main__":
main_key = winreg.HKEY_CURRENT_USER
sub_key = r"Software\Microsoft\Windows\CurrentVersion\Run"
with winreg.OpenKey(main_key, sub_key) as key:
winreg.SetValueEx(key, "name", 0, winreg.REG_SZ, "path")
Name und Path nat. ersetzen.
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:45
von The Hit-Man
danke schön.
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:47
von Xynon1
Wenn noch ein Fehler "Permission denied" kommen sollte, musst du noch die Zugriffsmethode abändern zB.:
Code: Alles auswählen
with winreg.OpenKey(main_key, sub_key, 0, winreg.KEY_SET_VALUE) as key:
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 17:59
von The Hit-Man
Wenn noch ein Fehler "Permission denied" kommen sollte, musst du noch die Zugriffsmethode abändern zB.:
jo, das Problem trat auf, konnte es aber dann mit Deinem Code wieder lösen.
Danke Euch
Re: _winreg und neuen Schlüssel erstellen
Verfasst: Freitag 4. Februar 2011, 18:05
von Xynon1
Naja genau genommen musst der Fehler auftauchen, da der default-Parameter nur KEY_READ ist, allerdings wusste ich das bis eben auch nicht, denn

ich habe es weder getestet noch je damit gearbeitet. Das entstand jetzt nur mal schnell aus der Doku
http://docs.python.org/library/_winreg.html