从 32 位应用程序启动 64 位进程?

发布于 2024-10-25 17:43:26 字数 610 浏览 2 评论 0原文

我有一个为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

后eg是否自 2024-11-01 17:43:26

将有问题的应用程序包装在使用 AnyCPU 编译的 exe 中效果很好,而且似乎是最不痛苦的方法。

Wrapping the offending app in a exe compiled with AnyCPU works fine and seems to be the least painful approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文