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

所属分类: 软件编程 / vb 阅读数: 275
收藏 0 赞 0 分享

通常用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访问注册表代码较多就不往上贴了。

更多精彩内容其他人还在看

VB编程的八个优良习惯第1/2页

VB编程的八个优良习惯
收藏 0 赞 0 分享

VB XMLHTTP使用方法

VB判断地址是否存在的XMLHTTP方法
收藏 0 赞 0 分享

vb简易计算器源码

本人一觉醒来闲得无聊,正在学习VB,便用VB写个简易的计算器吧!巩固基础
收藏 0 赞 0 分享

VB简易记事本实现代码

VB简易记事本实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

分享如何在VB中调用VC编写的DLL

一般来说,VB和VC共同编程有3种方式:一种是VC生成DLL,在VB中调用DLL;一种是VC生成ActiveX控件(.ocx),在VB中插入;还有一种是在VC中生成ActiveX Automation服务器,在VB中调用
收藏 0 赞 0 分享

VBA中连接SQLSERVER数据库例子

这篇文章主要介绍了VBA中连接SQLSERVER数据库例子,VBA是指Visual Basic for Applications,是Visual Basic的一种宏语言,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现的16位和32位md5加密代码分享

这篇文章主要介绍了VB实现的16位和32位md5加密代码分享,需要的朋友可以参考下
收藏 0 赞 0 分享

VBA中操作Excel常用方法总结

这篇文章主要介绍了VBA中操作Excel常用方法总结,包含关闭工作簿、打开工作簿、切换工作表等,需要的朋友可以参考下
收藏 0 赞 0 分享

VB6中的LSet语句和RSet语句详解

这篇文章主要介绍了VB6中的LSet语句和RSet语句详解,LSet语句和RSet语句不太常用,所以知道的人不多,需要的朋友可以参考下
收藏 0 赞 0 分享

VB调用Word拼写检查功能实例

这篇文章主要介绍了VB调用Word拼写检查功能,非常实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多