在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++来操作注册表,重点介绍查询和修改注册表的方法。 - **查询注册表** - **步骤1**:打开注册表键。 ```cpp HKEY hKEY; LPCTSTR data_Set = "Software\\Microsoft\\Windows\\...
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Example", 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) { DeleteRegistryKey(hKey, "TestKey"); DeleteRegistryValue(hKey, "", "TestValue"); RegCloseKey...
2. 修改注册表前应备份,以免数据丢失或错误操作导致系统出错。 3. 对于不熟悉的键值,谨慎操作,避免误删重要系统设置。 4. 不推荐使用第三方工具随意清理或修改注册表,这可能导致应用程序功能异常。 通过这个...
5. **错误处理**:由于API函数是直接调用操作系统,错误处理至关重要。通常使用`On Error`语句或自定义异常处理来捕获可能出现的问题。 6. **头文件和库引用**:API函数通常来自特定的系统动态链接库(DLL)。在VB...
有时,为了优化系统性能或解决某些问题,我们需要对注册表进行编辑,包括删除某些不必要的键值。VB(Visual Basic)是一种常用的编程语言,可以用来编写程序来操作注册表。以下我们将详细探讨如何使用VB来清除注册表...
- 错误处理:很多API函数可能会返回错误码,需通过适当的错误处理机制(如On Error语句)来捕获并处理可能出现的问题。 - 记住API函数是低级别的,不遵循VB的垃圾回收机制,因此开发者需要自行管理内存分配和释放。 ...
5. **错误处理**:API调用可能会失败,因此需要使用`On Error`语句来捕获和处理错误。同时,有些API函数会通过返回值来指示错误状态,需要正确解读。 6. **示例应用**:教程可能包含一些实际的例子,如使用API进行...
- **错误处理**:API调用可能失败,因此使用`Err`对象和`ApiError`函数进行错误检测是必要的。 - **结构体和联合体**:对于复杂的数据结构,如指针或结构体,需要使用`Type`声明并传递。 - **动态内存管理**:API...
- **解决方法**: - 检查使用的访问权限是否足够。例如,尝试使用`KEY_ALL_ACCESS`权限来打开键,这通常包含了所有必需的读写权限。 - 如果是在一个非管理员用户环境下运行程序,考虑提升程序的执行权限或者更改...
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, ...