问题标签 [wow64]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
64-bit - 从 32 位应用程序创建 64 位注册表项(非 WOW64)
我有一个创建一些注册表项的 Visual Studio 安装程序:
但它正在创建的注册表项会自动出现在 Wow6432Node 下:
在由 msi 执行的 C# 代码中创建注册表项时,如何忽略 Wow6432Node?
c# - 如何为 WoW64 和 x64 进程创建共享注册表项
有什么方法可以创建自定义(WoW64)共享注册表项?
默认情况下,一些注册表项是共享的,而另一些是重定向的(请参阅MSDN)。但我想在 HKLM\Software 下创建一个应该共享的自定义注册表项。我正在寻找 C#(可能是 P/Invoke)和 WIX 中的解决方案。
java - 在 x64 Windows 中有没有办法运行 Runtime.exec() 进程避免“注册表重定向”
我们的应用程序在 jvm 32 位中运行,即使在 windows x64 中也是如此。现在,在某些时候,我需要访问一些注册表值,例如 HKEY_LOCAL_MACHINE/SOFTWARE/mycomp。
我通过执行来做到这一点
从 Runtime.exec() 并解析输出。这在 Windows 32b 上运行时工作正常,问题是在 x64 上时,我找不到密钥,因为我运行的外壳是 32 位进程,并且由于注册表重定向,如果它在 HKEY_LOCAL_MACHINE/SOFTWARE 上,我会得到密钥/wow6432节点/mycop
任何想法?
c# - 如何从 32 位 .NET 应用程序在 64 位 Windows Server 2008 上启动 ServerManager.msc?
我有以下场景:
- 64 位 Windows Server 2008。
- 32 位 .NET 应用程序(由于各种原因需要 x86)。
- 我需要从我的 .NET 应用程序启动 ServerManager.msc。
使用 Process.Start("ServerManager.msc") 时,出现以下异常:
System.ComponentModel.Win32Exception。
Message="系统找不到指定的文件"。
在 32 位 Windows Server 2008 上,代码运行良好……
我试图包含 ServerManager.msc 的完整路径,但这也无济于事。
使用或不使用管理员权限运行也没有区别。
有任何想法吗?
64-bit - 在 x64 系统中从 NSIS 安装程序安装驱动程序
我想在我的 NSIS 安装程序中添加对 x64 操作系统的支持。安装程序的任务之一是驱动程序安装。我为此任务编写了一个特殊的 NSIS 插件。此插件使用 驱动程序安装框架 API (DIFxAPI)来安装驱动程序。
问题是这个 API 在 WOW64 中不起作用。
有没有办法使用 NSIS 创建 x64 安装程序应用程序?有人用 NSIS 解决过类似的问题吗?
PS:我现在能看到的唯一解决方案是从安装程序运行另一个应用程序。这将是安装驱动程序的 x64 可执行文件。但这种方式对我来说似乎有些困难。所以,我对其他解决方案感兴趣。
c++ - WOW64:从 32 位进程获取 x64 %CommonProgramFiles%
我试过的查询:ExpandEnvironmentStrings("%COMMONPROGRAMFILES%")
, GetSpecialPath(CSIDL_PROGRAM_FILES_COMMON)
.
所有解决(通常)c:\\Program Files (x86)\\Common Files
从我的 32 位应用程序。我需要检查(通常)安装在c:\\Program Files\\Common Files
64 位应用程序下的文件版本。
windows - 如何确定注册表项是否被 WOW64 重定向?
是否可以确定给定的注册表项是否被重定向?
我的问题是我想从 32 位应用程序以通用方式枚举 32 位和 64 位注册表视图中的注册表项。我可以简单地打开每个键两次,首先使用 KEY_WOW64_64KEY,然后使用 KEY_WOW64_32KEY。但是,如果未重定向密钥,则会为您提供完全相同的密钥,并且您最终会枚举完全相同的内容两次;这是我要避免的。
我确实找到了一些关于它的文档,但看起来唯一的方法是检查配置单元并在键上进行一堆字符串比较。我想到的另一种可能性是尝试在每个子项上打开 Wow6432Node;如果存在,则必须重定向密钥。即,如果我尝试打开 HKCU\Software\Microsoft\Windows,我会尝试打开以下键:HKCU\Wow6432Node、HKCU\Software\Wow6432Node、HKCU\Software\Microsoft\Wow6432Node 和 HKCU\Software\Microsoft\Windows\ Wow6432 节点。不幸的是,文档似乎暗示重定向键的子节点不一定会重定向,因此该路由也存在问题。
那么,我在这里有什么选择?
windows - 使用来自 32 位进程的 64 位 COM 对象
我正在使用在 Windows 上使用 COM 的 virtualbox api。如果您有 64 位操作系统,它将安装 64 位版本,并且 COM 接口将可被 64 位客户端访问,但不能被 32 位客户端访问。有人告诉我这是一个 COM 限制,但我已经看到了使用 dll32 在注册表上“发布”32 位接口的方法,因此 64 位进程可以调用这些 COM 服务器,但我找不到相反的,访问 64 位来自 32 位进程的接口。
如果我不是很清楚,我相信这个人想要实现类似的目标: http: //www.codeproject.com/Forums/1648/COM.aspx?fid= 1648&df=90&mpp=25&sort=Position&select=1702805&tid=1702805
x86 - WoW64 进程可以创建/fork/etc 纯 x64 进程吗?
我希望从 x86 进程/exe 调用 x64 exe,例如:
- 打开 x86 cmd:%windir%\SysWoW64\cmd.exe
- 启动记事本:notepad.exe <- 它将是 x86 记事本(根据 taskmanager = *)
是否可以从 x86 cmd 执行 x64 记事本?
我的问题是我正在执行的进程必须作为 x64 运行,我不希望它作为 x86 (WoW) 运行,因为它的行为不同......这就是它的编程方式,我无法更改它:-(我的exe是x86 ...
为了简化我的问题:WoW 进程可以创建/fork/etc 纯 x64 进程吗?
非常感谢
YB