Opracowałem skrypt Pythona, w którym mam okno ustawień, które ma opcje wyboru ścieżek do instalacji oprogramowania. Po kliknięciu przycisku OK okna ustawień, chcesz zapisać wszystkie wybrane ścieżki do rejestru i przeczytać to samo po ponownym otwarciu okna ustawień. Mój kod wygląda jak poniżej.skrypt Pythona do odczytu i zapisu ścieżki do rejestru
def OnOk(self, event):
data1=self.field1.GetValue() #path selected in setting window
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
keyVal=OpenKey(aReg,r"SOFTWARE\my path to\Registry", 0,KEY_WRITE)
try:
SetValueEx(keyVal,"Log file",0,REG_SZ,data1)
except EnvironmentError:
pass
CloseKey(keyVal)
CloseKey(aReg)
pojawia się błąd jak poniżej:
Traceback (most recent call last):
File "D:\PROJECT\project.py", line 305, in OnOk
keyVal=OpenKey(aReg,r"SOFTWARE\my path to\Registry", 0,KEY_WRITE)
WindowsError: [Error 5] Access is denied
I odczytu z rejestru, zapisany w rejestrze musi pokazać się w zachodzącym window.I próbował z poniższej code.Though jego pracy, ale nie zadowolony ze sposobu i zaprogramowany it.Help mi się lepszym rozwiązaniem
key = OpenKey(HKEY_CURRENT_USER, r'Software\my path to\Registry', 0, KEY_READ)
for i in range(4):
try:
n,v,t = EnumValue(key,i)
if i==0:
self.field2.SetValue(v)
elif i==1:
self.field3.SetValue(v)
elif i==2:
self.field4.SetValue(v)
elif i==3:
self.field1.SetValue(v)
except EnvironmentError:
pass
CloseKey(key)
Tak, używałem gościa, więc nie zrozumiałem. Zmieniłem HKEY_LOCAL_MACHINE na HKEY_CURRENT_USER i teraz to działa dobrze. – Aramanethota
IS HKEY_CURRENT_USER działa zarówno dla konta administratora, jak i innego użytkownika? – Aramanethota
Jeśli użytkownik-gość może uzyskać dostęp do klucza w Rejestrze, to może również Admin. –