当前位置: 首页 > 编程笔记 >

VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法

明阳旭
2023-03-14
本文向大家介绍VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法,包括了VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法的使用技巧和注意事项,需要的朋友参考一下

通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息。经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW64"下,当我们在访问某些注册表键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面。

先来谈谈文件系统的转向,查找了一些资料,并没有VB相关的资料,但是可以查到2个相关函数:Wow64DisableWow64FsRedirection(关闭系统转向)和Wow64RevertWow64FsRedirection(打开系统转向)。
VB的声明如下:

Private Declare Function Wow64RevertWow64FsRedirection Lib "kernel32.dll" ()
Private Declare Function Wow64DisableWow64FsRedirection Lib "kernel32.dll" ()

然后用CALL Wow64DisableWow64FsRedirection语句来关闭文件系统的转向。

再来谈谈注册表项的转向:

这个依然没有VB方面的资料,但是知道有函数RegOpenEx(VB有这个函数,用法见API浏览器)可以决定是否转向,只要在函数的samDesired【Long】参数上加256(&H100)就可以访问64位的注册表了。由于API访问注册表代码较多就不往上贴了。

 类似资料:
  • 本文向大家介绍安装SQL server 2005 出现警告 32位ASP.NET已经注册,需要注册64位的解决方法,包括了安装SQL server 2005 出现警告 32位ASP.NET已经注册,需要注册64位的解决方法的使用技巧和注意事项,需要的朋友参考一下 可以运行以下两条命令: 1.将64位.net注册到iis上。 cscript C:\inetpub\adminscripts\adsut

  • 本文向大家介绍C#中实现在32位、64位系统下自动切换不同的SQLite dll文件,包括了C#中实现在32位、64位系统下自动切换不同的SQLite dll文件的使用技巧和注意事项,需要的朋友参考一下 直接上代码:

  • 本文向大家介绍将python2.7添加进64位系统的注册表方式,包括了将python2.7添加进64位系统的注册表方式的使用技巧和注意事项,需要的朋友参考一下 解决问题:python2.7无法在注册表中被识别,即在安装NumPy和SciPy等出现“python version 2.7 required, which was not found in register”的问题。 解决方法:新建一个“

  • 问题内容: 使用Java本机接口时,我遇到了一个导致此错误的问题。我相信这是因为我使用MinGW编译了.dll,而我的系统是64位的,因此我的Java运行于64位,而MinGW编译为32位的.dll。无论如何,有没有强制我的Java在32位上运行? 问题答案: 您将必须安装32位JVM,然后才能运行代码。 如果要分发应用程序,则将要构建DLL的32位和64位版本。然后,使用以下技术来加载正确的DL

  • 问题内容: 在Java中,是否保证int始终为32位,而长为64位,而不管体系结构是32位还是64位? 问题答案: Java是平台无关的。所以是32位,并且是64位的。

  • 问题内容: 我已经使用Java一段时间了,而我典型的设置新开发机的习惯要求从Oracle站点下载并安装最新的JDK。 今天这引发了一个不寻常的问题, 回想起来,我已经安装了之前的两个版本,并且很高兴将普通的工具链插入(Eclipse)。在我的日常编程中,我不会回想起曾经因为使用64位JRE(或为此目的而针对64位JRE)而不得不以其他方式进行更改或思考的事情。 根据我对64位和32位的理解- 确实