我修改的注册表,但是程序运行起来,还是记着以前的,
我查看了相关资料,说是修改只是暂时保存在memory,并没有保存到harddisk中,请高手指点一下,我用python写的,代码如下import win32apiimport win32condef RegSubkeySet(dbName, dbVersion): key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,'Software\\DSA\\PRODIS Office\\Settings',0,win32con.KEY_ALL_ACCESS) win32api.RegQueryValueEx(key,'Data Source') win32api.RegSetValueEx(key,'Data Source',0,win32con.REG_SZ,dbName) win32api.RegSetValueEx(key,'ExpVersion',0,win32con.REG_SZ,dbVersion) win32api.RegCloseKey(key) # Test ------------------------------------------------------------------if __name__ == "__main__": pass
用 _winreg 试试
我当初用的是这个相关例子:注册表设置:建key>>> import _winreg>>> root = _winreg.HKEY_LOCAL_MACHINE>>> proxy_path = r"SOFTWARE\py">>> hkey = _winreg.CreateKey(root,proxy_path) #注册表里如果已经存在proxy_path则建一个,如果有则打开>>> _winreg.SetValueEx(hkey,"py",0,_winreg.REG_SZ,"py is the best.") #新建一个字符串值注册表里:名称 类型 数据py REG_SZ py is the best. 读取注册表里已经存在的key的信息:>>> x = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)>>> y = _winreg.OpenKey(x,r"SOFTWARE\py")>>> value = _winreg.QueryValueEx(y,'py')[0] #如果没有>>> print valuepy is the best.查找是否有某个key存在:>>> hkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\py")>>> keyinfo = _winreg.QueryInfoKey(hkey)>>> keyinfo[1]1>>> _winreg.EnumValue(hkey,0)('Install_Dir', u'd:\\py', 1)>>> n,v,t = _>>> n'Install_Dir'>>> n == 'install_dir'False>>> n == 'Install_Dir'True>>> vu'd:\\py'希望能帮到你