我在64位系统上运行32位应用程序(Windows 7)我试图运行Windows备份位于:c: System32 sdclt.exe。 因为我作为一个32位进程运行,我必须禁用WOW64redirect(使用Wow64disableWow64FsRedirection)。 问题是,禁用wow64redirect后,我得到“无法find指定的过程”错误。
我的猜测是,在禁用redirect时,sdclt.exe无法加载所有依赖的dll。
注意:1.这种情况只发生在我没有提高特权的情况下。 2.我设置“使用shell执行”为true,因为我想让用户使用我的应用程序没有提高priviliges。 2.编译为64位时不会发生此错误。
每24小时创build文件取决于计时器
在Linux下将ASP.NET应用程序移植到Mono / Apache
Windows使用哪种开源的面向文档的数据库系统最为成熟?
.NET FileInfo.LastWriteTime和FileInfo.LastAccesstime是错误的
当我在文本框中input时出现恼人的嘟嘟声
如何判断列表框中的内容
是什么让我的计时器跑不准?
我在哪里可以findsql Server版本的友好的string?
使用.NET 4.0更新Windows XP上的GitExtensions会得到错误“… 4.0必须安装…”
怎样才能在.NET上创build一个软件路由器?
禁用文件重定向是一项不稳定的业务。 你在这里做的是为了让你的32位进程能够看到位于system32的文件。 通常,从32位进程到该文件夹的任何引用都将被重定向到SysWOW64 。 但是,正如您发现的那样,禁用文件重定向会破坏链中的其他链接。
我所知道的最好的解决方案是使用特殊的%windir%sysnative别名来查找真正的system32目录。 不要禁用文件重定向,只是在产生进程时传递%windir%sysnativesdclt.exe 。
通过将%windir% Sysnative替换为%windir% System32,32位应用程序可以访问本机系统目录。 WOW64将Sysnative识别为一个特殊的别名,用来表示文件系统不应该重定向访问。 该机制灵活易用,因此推荐绕过文件系统重定向。 请注意,64位应用程序不能使用Sysnative别名,因为它是一个虚拟目录而不是真实目录。
Windows server 2003和Windows XP :从Windows Vista开始添加了Sysnative别名。
最后的警告实际上意味着%windir%sysnative在%windir%sysnative上无法识别,除非机器已经使用了适用于该操作系统的%windir%sysnative的MS修补程序。 实际上,这并不重要,因为XP64的安装基础很小。
我知道的唯一的另一个解决方案是创建一个64位进程的专用启动器。 如果您将该启动程序放置在不受文件重定向影响的文件夹中,则可以从32位进程调用该启动程序,然后启动程序可以看到64位系统目录。 我想如果你需要支持XP64,你将不得不使用这种方法。
我有一个类似的问题。 我注意到问题只发生在未安装SP1的Windows 7 x64系统上。 在发生问题的系统上,升级到SP1修复了它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。