x64系统的判断和x64下文件和注册表访问的重定向——补记
来源:互联网 发布:建筑软件行业 编辑:程序博客网 时间:2024/05/16 13:04
原来的地址
x64系统的判断和x64下文件和注册表访问的重定向(1)
x64系统的判断和x64下文件和注册表访问的重定向(2)
x64系统的判断和x64下文件和注册表访问的重定向(3)
之前在(3)里面讨论过%ProgramFiles%这个环境变量的指向问题,其实在x64环境下面还有两个环境变量可以使用:%ProgramFiles(x86)%和%ProgramW6432%,如果你的系统安装在C盘,那么对应关系是这样的(注32位系统只有%ProgramFiles%,这里不讨论):
%ProgramFiles%
%ProgramFiles(x86)%
%ProgramW6432%
32位程序
C:\Program Files (x86)
C:\Program Files (x86)
C:\Program Files
64位程序
C:\Program Files
C:\Program Files (x86)
C:\Program Files
分享一个有意思的文件重定向问题,在Wow环境(也就是32位程序运行在64位系统下)下,通过一种特殊的Hack方式可以规避文件重定向。想象这样一种场景,如果你的32位程序在64位系统想访问C:\Windows\System32\systemlnk.lnk,它实际上会被重定向访问C:\Windows\SysWOW64\systemlnk.lnk这个文件,可能就不是你想要的结果了,解决这个问题,用(3)里面提到的关闭文件重定向的方式是可以可以解决的,另外一种方式就是这里提到的Hack方式,把C:\Windows\System32\systemlnk.lnk里面的System32换sysnative,变成C:\Windows\sysnative\systemlnk.lnk,那么就可以真正去访问C:\Windows\System32\systemlnk.lnk了,也不用去关闭文件重定向了。
注:32位系统下的32位程序和64位系统下64位程序不要用这种方式。
// -------------------------------------------------------------------------// 函数 : KWow64FsRedrt::IsWow64Process// 功能 : 判断是否运行在Wow模式// 返回值 : BOOL // 附注 : 也就是32位程序运行在64位系统,而64位程序调用这个函数返回FALSE// -------------------------------------------------------------------------BOOL KWow64FsRedrt::IsWow64Process(){ BOOL bIsWow64 = FALSE; typedef BOOL (WINAPI *PF_ISWOW64PROCESS)(HANDLE, PBOOL); PF_ISWOW64PROCESS pfIsWow64Process = (PF_ISWOW64PROCESS)::GetProcAddress( GetModuleHandle(_T("kernel32.dll")), "IsWow64Process"); if (pfIsWow64Process) { if (!pfIsWow64Process(GetCurrentProcess(), &bIsWow64)) { // handle error } } return bIsWow64;}
- x64系统的判断和x64下文件和注册表访问的重定向——补记
- x64系统的判断和x64下文件和注册表访问的重定向(1)
- x64系统的判断和x64下文件和注册表访问的重定向(2)
- x64系统的判断和x64下文件和注册表访问的重定向(3)
- x64系统的判断和x64下文件和注册表访问的重定向(1)
- x64系统的判断和x64下文件和注册表访问的重定向(2)
- x64系统的判断和x64下文件和注册表访问的重定向(3)
- x64下文件和注册表访问的重定向
- X64系统 注册表和文件重定向 Python
- 64位系统下文件重定向和注册表重定向
- [C#]用API的方法解决X64系统注册表被重定向问题
- [C#]api解决X64系统注册表被重定向问题
- WOW64:文件和注册表的重定向
- 文件和注册表的重定向解决方法
- WOW64:文件和注册表的重定向
- WOW64:文件和注册表的重定向
- 文件和注册表的重定向解决方法
- 文件和注册表的重定向解决方法
- 为你的水晶报表装载本地图片
- GridView多行表头创建
- 蓝牙核心技术概述(三): 蓝牙协议规范(射频、基带链路控制、链路管理)
- 【学习笔记----数据结构21-图的拓扑排序】
- IntelliJ Idea 常用快捷键列表
- x64系统的判断和x64下文件和注册表访问的重定向——补记
- 自增、自减运算符
- jni方法动态注册--C++
- ubuntu,eclipse下用maven创建hadoop项目总结
- 软件架构概念
- membership(4)---API篇
- 网络相关知识
- hdu 2538 确定排名
- Android Handler详解