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访问注册表代码较多就不往上贴了。
相关推荐
-
Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法
原来使用Win7的32位系统,进行C#工程的开发,后来重装系统,换成了win7的64位系统 调试原来的工程,由于在其中引用了"SQLite"的32位的dll,导致在64为位下程序无法运行(但是编译可以通过) 后来通过修改工程文件(.csproj),在其中设置引用的条件,解决了问题 打开引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到对SQLite引用的语句,类似如下的代码 复制代码 代码如下: <Reference Include="
-
在双硬盘上安装独立32位和64位双系统
现在的64位操作系统还没有中文版,加之受兼容性问题的影响,组建独立多系统显然已成为最佳的解决方案.很多朋友在配置64位硬件平台时已购入了SATA硬盘,但同时拥有SATA和PATA硬盘的朋友也不在少数,下面就来说明怎样在这两块硬盘上构建32位和64位Windows XP的独立双系统. 一.设置SATA硬盘 说明:本次用于试验的硬盘为: PATA接口的希捷40GB和SATA接口的希捷80GB硬盘各一块.怎样设置SATA硬盘,由主板决定,本文以硕泰克SL-K8AV2-R1L主板上的设置方法为例.各位朋
-
阿里云主机Windows 2008 32位 64位自助正版激活图文教程
Windows2008 32位.64位 中文版操作系统,自助激活Windows正版,远程登录服务器后: 1.开始--运行 2.在运行里面输入cmd. 系统会跳出如下窗口: 3.输入slmgr -skms kms.aliyun-inc.com 4.输入slmgr -ato 5.完成
-
安装SQL server 2005 出现警告 32位ASP.NET已经注册,需要注册64位的解决方法
可以运行以下两条命令: 1.将64位.net注册到iis上. cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 和 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i 2.注册32位.net: 不需要卸载32位,注册命令就是上面的命令.系统默认安装的是64位系统,但是由于客户程序大部分都是
-
C#中实现在32位、64位系统下自动切换不同的SQLite dll文件
直接上代码: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Management; using System.IO; namespace SqliteAuto { static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main
-
PHP和MySql中32位和64位的整形范围是多少
一个字节有8位,所以32位int型占用32位/8位=4个字节,64位int型占用64位/8位=8个字节. 32位,64位无符号整型最大值: 2^64-1 = 18446744073709551615 2^32-1 = 4294967295 32位,64位有符号整型最大值: (2^32)/2-1 = 2147483647 (2^64)/2-1 = 9223372036854775807 减1是因为整型包括0. 64位Ubuntu 14.04,PHP_INT_MAX的值为92233720368547
-
VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息.经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW64"下,当我们在访问某些注册表键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面. 先来谈谈文件系统的转向,查找了一些资料,并没有VB相关的资料,但是可以查到2个相关函数:Wow64DisableWow64FsRedirect
-
实现让易语言编译的32位程序在64位Windows7系统非管理员帐户中执行
昨天有易语言开发者向我求助,说他用易语言编译的32位程序软件,发布给64位操作系统Win 7用户使用,因为该用户确定没有管理员权限,而程序启动时又要求必须输入管理员密码,如此陷入困境. 目标企业用户管理严格,要求为普通用户分配管理员权限是不切实际的,只能开发人员从软件开发的角度在技术上解决. 我听到这个问题后,第一感觉是微软用户帐户控制(UAC)引发的,估计通过给 exe 添加特定的 manifest 资源应该可以解决.于是我给了他一段代码,让他用 ResHacker 之类的软件添加到软件里面去
-
windows server 2008 阻止恶意插件程序下载安装到系统中
当我们使用Windows Server 2008系统自带的IE浏览器访问Internet网络中的站点内容时,经常会看到有一些恶意插件程序偷偷在系统后台进行安装操作,一旦安装完毕后,我们往往很难将它们从系统中清除干净,并且它们的存在直接影响着Windows Server 2008系统的工作状态以及运行安全.为了不让恶意插件程序偷袭Windows Server 2008系统,我们可以通过下面的设置操作,来阻止任何来自Internet网络中的下载文件安装保存到本地系统中: 首先以系统管理员身份进入Wi
-
ASP.NET 程序中删除文件夹导致session失效问题的解决办法分享
在Global中 Application_Start 添加 如: 复制代码 代码如下: void Application_Start(object sender, EventArgs e) { //在应用程序启动时运行的代码 System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", System.Reflect
-
win7 64位操作系统中Oracle 11g + plsql安装教程详解(图解)
先去网上把下面列表里的文件下载下来,百度一搜索到处都是~~~ 我来解释一下以上目录都是什么: instantclient-basic-win32-11.2.0.1.0.zip 这个文件是配置文件,现在先不解释,等下会用到. OraClient.zip 这个是oracle的客户端,我在安装的时候没有用到这个,这个可以不要. plsqldev1104.zip 这个是plsql客户端,安装很简单. win32_11gR2_database_1of2.zip win32_11gR2_database_2
-
64 位 ASP.Net 已注册 需要 32 位 ASP.Net 才能安装 Microsoft Reporting
64 位 ASP.Net 已注册.需要 32 位 ASP.Net 才能安装 Microsoft Reporting Services 2005 (32 位). 安装SQL 2005时 出现这个错误. 先来看看我们的生产环境 操作系统:Windows Server 2008 R2 64位版本 SQL版本:SQL Server 2005 32位版本 在安装好IIS 和 .net 之后安装SQL 2005 收到了这个错误 64 位 ASP.Net 已注册.需要 32 位 ASP.Net 才能安装 Mi
-
c++ 判断是64位还是32位系统的实例
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProcess, __out PBOOL Wow64Process ); 参数 hProcess 进程句柄.该句柄必须具有PROCESS_QUERY_INFORMATION 或者 PROCESS_QUERY_LIMITED_INFORMATION 访问权限 Wow64Process 指向一个bool值, 如果该
-
Python 启动时选择32位 或64位版的操作
windows下如果同时安装了python 32 位版本和64位版本, 如何简便地启动指定的版本? # 启动python 3 32位版本 py -3-32 # 启动python 3 64位版本 py -3-64 # 启动python 2.7 32位版本 py -2.7-32 # 启动python 2 64位版本 py -2.7-64 补充:Python3在win10 64位+PyCharm下打包兼容32位和64位wins的exe可执行文件 前置条件 python3+ 32 位:注意:原来有 64
-
解决pycharm临时打包32位程序的问题
问题: 64位系统安装了64位的python,打包生成的程序是64位的,在32位系统上不兼容无法运行. 想安装多个python,只临时调用32位python解释器来打包32位程序,不想永久改掉默认的64位python解释器. windows版本不兼容的报错提示: 解决方法: 1.到Python官网(https://www.python.org/downloads/windows/)下载安装任意版本的32位python. 2.安装32位python,记住安装路径.像我,安装完之后同时拥有了32位和
随机推荐
- Python实现压缩与解压gzip大文件的方法
- React Native 环境搭建的教程
- Vue.js实现实例搜索应用功能详细代码
- 批处理BAT实现正弦曲线和抛物线代码
- 简单谈谈RxJava和多线程并发
- Java实现企业发放的奖金根据利润提成问题
- js仿QQ邮箱收件人选择与搜索功能
- asp.net下检测远程URL是否存在的三种方法
- 一键删除顽固的空文件夹 软件下载
- php中this关键字用法分析
- Python ValueError: invalid literal for int() with base 10 实用解决方法
- jQuery实现瀑布流布局详解(PC和移动端)
- 用<TABLE>语句来实现圆角表格可以省去制作圆角图片之苦!
- JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
- Ruby中case表达式详解
- 阿里云云服务器Windows 2008中的FTP配置图文教程
- [Linux]输入法xsim安装方法
- Django1.3添加app提示模块不存在的解决方法
- 基于JQuery的访问WebService的代码(可访问Java[Xfire])
- jquery选择符快速提取web表单数据示例