Eine Frage zur Bibliothek für Python 2.6: _winreg()

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Eine Frage zur Bibliothek für Python 2.6: _winreg()

René Linke-2
Hallo zusammen,

ich bin neu hier und auch in der Materie Python noch nicht lange dabei.
Erst seit Anfang März. Ich habe mir schon am Tutorial "A byte of Python"
(deutsche Übersetzung herangewagt. Und es hat mich noch hungriger auf
Python gemacht ;-) Auch habe ich schon einen Blick in docs.python.org
geworfen.

Folgende Situation:
Ich möchte mir gerne mit dieser Funktion zwei Dinge aus der Registry
auslesen lassen:

1. In welchem Verzeichnis wurde Python installiert und
2. Welche Version von Python wurde installiert.

#ReadingRegistry.py

import _winreg

InstallPath =
_winreg.EnumKey(HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath,
0)
Version =
_winreg.EnumValue(HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup,
0)

print "Installationspfad: "+InstallPath+"\nVersion: "+Version


Kann mir bitte jemand die Funktionen zum besseren Verständnis näher
Erklären?

Danke euch im Voraus für die Hilfe!

--
Herzliche Grüße
René

_______________________________________________
python-de maillist  -  [hidden email]
http://python.net/mailman/listinfo/python-de
Reply | Threaded
Open this post in threaded view
|

Re: Eine Frage zur Bibliothek für Python 2.6: _winreg()

Tuzhog
> Hallo zusammen,

>
> ich bin neu hier und auch in der Materie Python noch nicht lange dabei.
> Erst seit Anfang März. Ich habe mir schon am Tutorial "A byte of Python"
> (deutsche Übersetzung herangewagt. Und es hat mich noch hungriger auf
> Python gemacht ;-) Auch habe ich schon einen Blick in docs.python.org
> geworfen.
>
> Folgende Situation:
> Ich möchte mir gerne mit dieser Funktion zwei Dinge aus der Registry
> auslesen lassen:
>
> 1. In welchem Verzeichnis wurde Python installiert und
> 2. Welche Version von Python wurde installiert.

> #ReadingRegistry.py
>
> import _winreg
>
> InstallPath =
> _winreg.EnumKey(HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath,
> 0)
> Version =
> _winreg.EnumValue(HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup,
> 0)
>
> print "Installationspfad: "+InstallPath+"\nVersion: "+Version
>
>
> Kann mir bitte jemand die Funktionen zum besseren Verständnis näher
> Erklären?
>
> Danke euch im Voraus für die Hilfe!
>
Hi,


Ich habe mich einmal mit der _winreg Bibliothek beschäftigen "dürfen" um
den VLC Installationspfad herauszufinden und soweit ich weiß muss man
den zu benutzenden Schlüssel immer vorher öffnen (winreg.OpenKey) bevor
man ihn auszulesen kann (winreg.QueryValueEx).

Dein Beispiel würde ich daher folgendermaßen lösen:

import _winreg as winreg
try:
        # Den Schlüssel öffnen (single-user installationen)
        key = winreg.OpenKey(winreg.HKEY_USERS, "S-1-5-4\\Software\\Python\
\PythonCore\\2.6\\InstallPath")
except WindowsError:
        # Den Schlüssel öffnen (Mehrbenutzerinstallation)
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, "Software\\Python\
\PythonCore\\2.6\\InstallPath")

# Wert auslesen ('' bedeutet "(Standard)")
path    = winreg.QueryValueEx(key, '')[0]
# Unterschlüssel öffnen und ebenfalls auslesen
version = winreg.QueryValueEx(winreg.OpenKey(key, "InstallGroup"),
'')[0]

# Schlüssel schließen (nicht unbedingt notwendig)
key.Close()

# Ausgeben
print "Installationspfad:", path
print "Version:          ", version

_______________________________________________
python-de maillist  -  [hidden email]
http://python.net/mailman/listinfo/python-de

signature.asc (205 bytes) Download Attachment