Por lo general, los programas escritos en VB pueden ejecutarse normalmente en sistemas de 32 bits, pero en sistemas de 64 bits pueden ejecutarse pero no pueden modificar la información OEM. Después de buscar el motivo, podemos encontrar que cuando accedemos a la carpeta "SYSTEM32", el sistema redirigirá automáticamente a la carpeta "SYSWOW64". Cuando accedamos a ciertas claves de registro, similar a la redirección de archivos, el sistema también redirigirá automáticamente. acceso al programa Wow6432Node.
Primero hablemos de la redirección del sistema de archivos. Busqué información y no hay información relacionada con VB, pero puedo encontrar dos funciones relacionadas: Wow64DisableWow64FsRedirection (desactivar la redirección del sistema) y Wow64RevertWow64FsRedirection (activar la redirección del sistema).
La declaración de VB es la siguiente:
Función de declaración privada Wow64RevertWow64FsRedirection Lib "kernel32.dll" ()Función de declaración privada Wow64DisableWow64FsRedirection Lib "kernel32.dll" ()
Luego use la instrucción CALL Wow64DisableWow64FsRedirection para desactivar la redirección del sistema de archivos.
Hablemos de la dirección de las claves de registro:
Todavía no hay información de VB sobre esto, pero sé que hay una función RegOpenEx (VB tiene esta función, consulte el navegador API para conocer su uso) que puede decidir si redirigir. Simplemente agregue 256 (&H100) al samDesired [Largo] parámetro de la función para acceder a 64 bits del registro. Dado que hay muchos códigos de registro de acceso a API, no los publicaré aquí.