`

error: (2, 'RegOpenKeyEx',错误的解决方法

阅读更多

在python中读取注册表中的键值,代码如下:

#coding:utf-8

import win32api, win32con
import os
key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0,  win32con.KEY_READ)
keyValue = win32api.RegQueryValue(key, '')


print keyValue

 

然后运行的时候报下面的错误:

Traceback (most recent call last):
  File "D:\users\Desktop\yunpanAuto.py", line 8, in <module>
    key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0,  win32con.KEY_READ)
error: (2, 'RegOpenKeyEx', '\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xce\xc4\xbc\xfe\xa1\xa3')

 

这个依据我自身的问题,原因是我的window系统是64位,而python是32位,因此需要加上另外一个参数:

key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0,  win32con.KEY_READ | win32con.KEY_WOW64_64KEY)

 将上面的key后面的语句更改即可。

 

分享到:
评论

相关推荐

    用VC++修改注册表

    接下来,我们将详细介绍如何使用VC++来操作注册表,重点介绍查询和修改注册表的方法。 - **查询注册表** - **步骤1**:打开注册表键。 ```cpp HKEY hKEY; LPCTSTR data_Set = "Software\\Microsoft\\Windows\\...

    如何删除注册表中的注册信息,word版教材

    if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Example", 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) { DeleteRegistryKey(hKey, "TestKey"); DeleteRegistryValue(hKey, "", "TestValue"); RegCloseKey...

    注册表操作小例程

    2. 修改注册表前应备份,以免数据丢失或错误操作导致系统出错。 3. 对于不熟悉的键值,谨慎操作,避免误删重要系统设置。 4. 不推荐使用第三方工具随意清理或修改注册表,这可能导致应用程序功能异常。 通过这个...

    vb api 函数,编程开发使用

    5. **错误处理**:由于API函数是直接调用操作系统,错误处理至关重要。通常使用`On Error`语句或自定义异常处理来捕获可能出现的问题。 6. **头文件和库引用**:API函数通常来自特定的系统动态链接库(DLL)。在VB...

    清除注册表的某个指定值

    有时,为了优化系统性能或解决某些问题,我们需要对注册表进行编辑,包括删除某些不必要的键值。VB(Visual Basic)是一种常用的编程语言,可以用来编写程序来操作注册表。以下我们将详细探讨如何使用VB来清除注册表...

    vb专用Api及源码收藏器

    - 错误处理:很多API函数可能会返回错误码,需通过适当的错误处理机制(如On Error语句)来捕获并处理可能出现的问题。 - 记住API函数是低级别的,不遵循VB的垃圾回收机制,因此开发者需要自行管理内存分配和释放。 ...

    vb_api.rar_VB 教程_VB教程_vb api

    5. **错误处理**:API调用可能会失败,因此需要使用`On Error`语句来捕获和处理错误。同时,有些API函数会通过返回值来指示错误状态,需要正确解读。 6. **示例应用**:教程可能包含一些实际的例子,如使用API进行...

    visual basic 6.0 windows api讲座

    - **错误处理**:API调用可能失败,因此使用`Err`对象和`ApiError`函数进行错误检测是必要的。 - **结构体和联合体**:对于复杂的数据结构,如指针或结构体,需要使用`Type`声明并传递。 - **动态内存管理**:API...

    Windows api关于注册表的操作经验和总结

    - **解决方法**: - 检查使用的访问权限是否足够。例如,尝试使用`KEY_ALL_ACCESS`权限来打开键,这通常包含了所有必需的读写权限。 - 如果是在一个非管理员用户环境下运行程序,考虑提升程序的执行权限或者更改...

    开机自启动VS2013MFC基于对话框编程

    if (RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) { TCHAR szExePath[MAX_PATH]; GetModuleFileName(NULL, szExePath, ...

Global site tag (gtag.js) - Google Analytics