Igo*_*aka 30 .net process syswow64 32bit-64bit
我试图从我们的32位.NET应用程序运行64位可执行文件(java.exe).我正在使用Process
类和调用cmd /c <command name>
以支持所有可能的命令(如dir
,cd
等).
问题是在我的机器上我安装了64位版本的JRE,而java.exe只能从C:\Windows\System32
文件夹(x64)中获得.我已经尝试cmd.exe
通过调用显然启动64位版本C:\Windows\System32\cmd.exe
但SysWOW64
由于调用进程为32位而被重定向到.
我还能做些什么才能让它发挥作用吗?
编辑整个cmd /c
事情是一个红色的鲱鱼.它不是问题的一部分,能够运行64位可执行文件.
Mic*_*ael 34
您可以在调用Process.Start时暂时禁用文件系统重定向,P/Invoke的相应API是Wow64DisableWow64FsRedirection和Wow64RevertWow64FsRedirection.
另一种选择是使用%windir%\ sysnative,它可以在Windows Vista及更高版本上使用.
小智 12
你要做的是使用%windir%\ sysnative来解析64位CMD.EXE,然后通过"/ c"命令行选项启动其他64位程序.
c:\>set proc
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 70 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=4601
c:\>c:\windows\sysnative\cmd
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\>set proc
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 70 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=4601
c:\>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23615 次 |
最近记录: |