转 我修改的注册表,但是程序运行起来,还是记着以前的

我修改的注册表,但是程序运行起来,还是记着以前的,
我查看了相关资料,说是修改只是暂时保存在memory,并没有保存到harddisk中,请高手指点一下,我用python写的,代码如下
import win32api
import win32con

def 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 value
py 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
>>> v
u‘d:\\py‘

希望能帮到你

时间: 2024-10-25 08:27:17

转 我修改的注册表,但是程序运行起来,还是记着以前的的相关文章

Java 修改Windows注册表,以实现开机自启动应用程序。

使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg add 将新的子项或项添加到注册表中 语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f] 参数 KeyName 指定子项的完全路径.对于远程计算机,请在\\ComputerName\Pat

修改win7注册表发挥大容量内存优势

现在请打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control \Session Manager\MomoryManagement],在右侧窗格修改一下键值(要注意的是,做一下设置的前提是内存最好超过512MB,并仅限于Windows 2000/XP). (1)"LargeSystemCache"(启动大的系统缓存):在内存中开辟一块大的内存空间用于磁盘文件系统的预读取操作.当程序连续请求的数据增加时,Windows

C#注册表访问程序Win7系统下报错 “不允许所请求的注册表访问权”

今天一个同事安装完系统的客户端程序后,给发来一个报错截图,如下: 这个是在软件登陆时,有一个保存系统用户名的设置保存到注册表里,一直用着都没问题,今天却报错了.一问才知道他用的win7系统,看来win7对注册表的修改做了一定的限制. 经过测试可以通过修改程序的兼容性及设置权限来解决.因为这个程序是ClickOnce程序,所以要找到这个程序也不容易,动用windows的搜索功能吧,程序安装完会在xxx这样类似的一个目录下,找到启动的主程序,点右键"属性",点"兼容性"

修改python注册表

转自:http://blog.csdn.net/u014680513/article/details/51005650 # script to register Python 2.0 or later for use with win32all# and other extensions that require Python registry settings## written by Joakim Loew for Secret Labs AB / PythonWare## source:#

[转]注册表相关

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList 在这个项右边增加 DWord 值,名称为用户名,值为 0,即可隐藏不想显示在欢迎屏幕上的用户.(经测试可行) 以下文字来自:http://www.jb51.net/os/77905.html 我们平时大多采用Regedit注册表编辑器来实现对注册表的修改操作,但是这种手工操作费时费力,当你要对多台PC统

C# 自定义文件图标 双击启动 (修改注册表)

程序生成的自定义文件,比如后缀是.test 这种文件怎么直接启动打开程序,并打开本文件呢 1.双击打开 2.自定义的文件,有图标显示 3.自定义的文件,点击右键有相应的属性 后台代码:(如何在注册表中修改信息) //工具启动路径 string toolPath = System.Windows.Forms.Application.StartupPath + "\\邮件小工具.exe"; string extension = SptdConst.FileExtension; string

C#综合揭秘——通过修改注册表建立Windows自定义协议

引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对注册表进行修改的情况最为常见,在一般的应用程序中都会涉及.当中最为实用的例子将介绍如何通过"安装项目"修改注册表建立自定义协议,在页面通过ajax方式发送路径请求,并在回调函数中调用自定义协议.最后一节还将介绍如何调用自定义协议去保持数据的保密性.希望本篇文章能对各位的学习研究有所帮助,当

【转】C#综合揭秘——通过修改注册表建立Windows自定义协议

引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对注册表进行修改的情况最为常见,在一般的应用程序中都会涉及.当中最为实用的例子将介绍如何通过"安装项目"修改注册表建立自定义协议,在页面通过ajax方式发送路径请求,并在回调函数中调用自定义协议.最后一节还将介绍如何调用自定义协议去保持数据的保密性.希望本篇文章能对各位的学习研究有所帮助,当

注册表被修改的常见问题

关于注册表被篡改的问题时常会出现,下面介绍几种常用的解决方法 1.解开被禁用的注册表 执行软盘中的"unlockreg.reg"文件,此文件是用记事本建立一个以REG为后缀名的文件,文件名可自定义,内容如下: REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] "DisableRegistryTools"=dword:00000000 要注意的是