免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5536 | 回复: 7
打印 上一主题 下一主题

修改注册表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-31 16:58 |只看该作者 |倒序浏览
用python读写注册表,代码如下


  1. # 功能:换墙纸
  2. import _winreg

  3. key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, "Control Panel\Desktop")

  4. _winreg.SetValueEx(key, "WallPaper", 0, _winreg.REG_SZ, r"G:\Documents and Settings\ning\Local Settings\Application Data\Microsoft\00.jpg")
复制代码


错误信息如下:

Traceback (most recent call last):
  File "E:\programs\读写注册表2.py", line 3, in ?
    _winreg.SetValueEx(key, "WallPaper", 0, _winreg.REG_SZ, r"G:\Documents and Settings\ning\Local Settings\Application

Data\Microsoft\00.jpg")
WindowsError: (5, '')


是不是程序的权限不够?能提升权限吗?
因为:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

G:\Documents and Settings\ning>net helpmsg 5

拒绝访问。


此外,一个delphi例子上说,改注册表后重启才能生效,但可以给windows发一条内部信息,让它立即更化墙纸。
请问python可以发这样的信息吗?如何发?

python版本: 2.4 Enthought Edition

论坛徽章:
0
2 [报告]
发表于 2007-06-01 13:25 |只看该作者
可以查一查pywin32的说明,或使用ctypes来处理。

不过我也没有做过,自已查一下吧。

论坛徽章:
0
3 [报告]
发表于 2007-06-02 19:00 |只看该作者
ctypes第一次听说,长见识了!

网上来的代码:



  1. #试用ctypes
  2. #功能:得到盘符
  3. import ctypes as c
  4. L = 100
  5. a = c.c_buffer("\0"*L)
  6. l = c.c_int32(L)
  7. c.windll.kernel32.GetLogicalDriveStringsA(l,a)
  8. print a.raw.strip("\0").split("\0")
复制代码

论坛徽章:
0
4 [报告]
发表于 2007-06-03 02:47 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2007-06-04 13:46 |只看该作者
太好了!  正是我想要的。
ctypes果然比pywin32好用。

  1. SPI_SETDESKWALLPAPER = 20 # According to http://support.microsoft.com/default.aspx?scid=97142
  2. ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, imagepath, 0)
复制代码
多谢多谢!

论坛徽章:
0
6 [报告]
发表于 2007-06-04 20:56 |只看该作者
好文章,收藏了。原来python自己带了这么强大的库。

论坛徽章:
0
7 [报告]
发表于 2007-08-17 18:16 |只看该作者
原帖由 niexining 于 2007-6-4 13:46 发表
太好了!  正是我想要的。
ctypes果然比pywin32好用。

SPI_SETDESKWALLPAPER = 20 # According to http://support.microsoft.com/default.aspx?scid=97142
ctypes.windll.user32.SystemParametersInfoA(SP ...



ctypes.windll.user32.SystemParametersInfoA
这种模式智能使用BMP的格式或者动态桌面做墙纸,无法使用jpg,gif,等来做,最好的办法还是使用win32或者CTYPES

论坛徽章:
0
8 [报告]
发表于 2007-08-17 18:32 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP