从 32 位应用程序启动 64 位进程?
我有一个为 x86 编译的 WPF 4.0 应用程序。在 64 位 Win7 上运行时,我需要启动屏幕键盘,位于 %windows%/System32/osk.exe 中。问题是我无法做到这一点 - 我收到错误“无法启动屏幕键盘”。
我找到了这个线程: 无法从 Win7 x64 上的 32 位进程启动屏幕键盘 (osk.exe) 这听起来和我的问题完全一样。
我使用了该帖子中的所有相关位,但错误仍然存在。更糟糕的是,我设法获得了 32 位版本的 osk.exe,当我尝试启动它时,我只得到一个空白的错误框 - 根本没有消息,只有一个红色的“X”。
因此,我无法为 AnyCPU(第 3 方互操作库)编译我的应用程序,并且已经读到这可能无法解决问题。我还读到一种解决方法是使用 Wow64DisableWow64FsRedirection 禁用虚拟化,但这是不安全的。似乎只是为了运行一个小应用程序而付出了很大的努力:(
我该怎么做才能从我的应用程序启动这个小东西?
I have a WPF 4.0 application that I have compiled for x86. When running on 64bit Win7, I need to start up an on-screen keyboard, located in %windows%/System32/osk.exe. Problem is I can't do it- I get an error 'Could not start On-Screen Keyboard'.
I found this thread:
Unable to launch onscreen keyboard (osk.exe) from a 32-bit process on Win7 x64 which sounds exactly like my problem.
I used all the relevant bits from that post, but the error persists. And even worse, I managed to get a 32 bit version of osk.exe and when I try to start THAT I just get a blank error box- no message at all, just a red 'X'.
So I can't compile my app for AnyCPU (3rd party interop libs), and have read that that might not solve the issue anyways. I have also read that one workaround is to disable virtualization using Wow64DisableWow64FsRedirection, but that this is unsafe. Seems like a lot of effort just to run a little app :(
What can I do to launch this little thing from my app?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将有问题的应用程序包装在使用 AnyCPU 编译的 exe 中效果很好,而且似乎是最不痛苦的方法。
Wrapping the offending app in a exe compiled with AnyCPU works fine and seems to be the least painful approach.