Вызов из 32-х битного приложения в x64 Код (Text): invoke RegCreateKeyEx,iPart,addr szKey,0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS or KEY_WOW64_64KEY,0,addr hKey,0 всегда возвращает ERROR_ACCESS_DENIED, при разных iPart и szKey. Пробовал на XP и 7. То же с KEY_WOW64_32KEY вместо KEY_WOW64_64KEY. Если обращаться к тем же ключам без KEY_WOW64_32KEY и KEY_WOW64_64KEY, то всё работает, с соответствующими ограничениями.
HKEY_CURRENT_USER\Control Panel\Desktop HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer ... похоже любые
Помню писал прогу на дельфи для доступа к Win64 ключам с помощью флага KEY_WOW64_64KEY - всё работало. Попробуй в манифест включить requireAdministrator.
Sol_Ksacap Добавляю бинарник, если ещё не поздно. Раньше не было возможности. d2k9 requireAdministrator и указан.
Solved. Неверные дефайны в инклудах. Код (Text): invoke RegCreateKeyEx,part,key,0,0,REG_OPTION_NON_VOLATILE,\ KEY_ALL_ACCESS or KEY_WOW64_64KEY,0,addr hkey,0 KEY_ALL_ACCESS == 0x0F003F KEY_WOW64_64KEY == 0x000100 В бинарнике же: push 0x0f007f
Да, в masm32\include\windows.inc пропустили h в "KEY_WOW64_64KEY equ (0100)". С 0x000100 всё работает. Спасибо.