-
I am attaching a file that contains some changes to the implementations of RegEnumKey, RegEnumKeyEx, and RegEnumValue - all of which are affected by this ERROR_MORE_DATA situation. I have modified the implementation to expect ERROR_MORE_DATA.
I have looked at the implementation of RegENumValue and friends in the CVS code. They still won't work because they presume to know the size of a...
2008-05-16 13:18:47 UTC in Python for Windows extensions
-
Ah. The .reg file I attached earlier fails properly on a Korean / Japanese system. It seems to work fine on an English system. I suspect this is due to some underlying difference in the windows registry handling code. I don't think it is possible to reproduce this w/o a version of Windows that is localized in this way.
I could probably make an RDP session to such a system available if...
2008-05-15 13:55:35 UTC in Python for Windows extensions
-
The test cases won't fail on Latin character sets because they are typically 1-byte granular, so 1 TCHAR ends up being 1 byte. The Japanese and Korean encodings are not that simple. I am also unhappy with setting to a maximum value, so I have revised RegEnumKey and friends to loop when detecting ERROR_MORE_DATA. I will also change that for RegEnumValue.
The Windows API seems a bit fuzzy...
2008-05-15 12:39:35 UTC in Python for Windows extensions
-
The test cases won't fail on Latin character sets because they are typically 1-byte granular, so 1 TCHAR ends up being 1 byte. The Japanese and Korean encodings are not that simple. I am also unhappy with setting to a maximum value, so I have revised RegEnumKey and friends to loop when detecting ERROR_MORE_DATA. I will also change that for RegEnumValue.
The Windows API seems a bit fuzzy...
2008-05-15 12:38:51 UTC in Python for Windows extensions
-
I have attached the .cpp file containing the program I used to generate these results.
File Added: main.cpp.
2008-05-14 19:43:12 UTC in Python for Windows extensions
-
I believe there are two problems:
(1) MS's registry code works strangely
(2) python and pywin32 assume that the functions are returning sizes in bytes, whereas the API documentation clearly says unicode characters (or in some places, TCHARS.)
This happens to work by accident on Latin character set systems b/c they usually use utf-8 or similar 8-byte systems. Korean and Japanese systems do...
2008-05-14 19:42:00 UTC in Python for Windows extensions
-
I should also clarify - this is a problem with key and value NAMES. Not the data.
2008-05-14 14:33:58 UTC in Python for Windows extensions
-
I have attached a registry key that causes the failure that I posted below for your debugging pleasure.
2008-05-14 13:24:16 UTC in Python for Windows extensions
-
File Added: opsware_reg.dat.
2008-05-14 13:23:23 UTC in Python for Windows extensions
-
I have also discovered the same problem in RegEnumKey today. The error occurs this way:
Testing: SOFTWARE\Opsware
=========================
agent
Traceback (most recent call last):
File "c:\temp\testreg3.py", line 21, in ?
print win32api.RegEnumKey(r2, index)
pywintypes.error: (234, 'RegEnumKey', '\x83f\x81[\x83^\x82\xaa\x82\xb3\x82\xe7\x...
2008-05-14 13:22:01 UTC in Python for Windows extensions