【发布时间】:2013-03-11 09:23:36
【问题描述】:
- VS 2010
- 开发在 64 位操作系统上运行的 32 位应用程序(Windows 7、Windows 8 - 桌面应用程序)
- C#
- .NET 4.0
- WinForms
我在从应用程序启动 Windows 屏幕键盘 (osk.exe) 时发现了许多线程,但我遇到了一些问题。这似乎是因为我在 64 位操作系统上运行 32 位应用程序。我在这里尝试了 WooCaSh 发布的代码:
Keyboard on the screen in WinForms
但是这三种不同的路径都不适合我。对于 sysnative 路径,Process.Start 失败并显示 “找不到指定的路径。” 对于 system32 和 osk.exe 路径,我得到 “无法启动 on -屏幕键盘”错误对话框。
我在这里找到了一个可能的解决方法,这比我正在寻找的要复杂一些(eryang 发布):http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/10ebc62f-e6d7-4072-9fd1-ea3784a0966f/
- 有更简单或更正确的方法吗?
- 我希望在平板电脑上运行我的应用程序会在用户选择文本框时自动启动屏幕键盘,但没有成功。这是正常的还是我错过了什么?我发现在桌面模式(我的应用程序是)下,键盘不会在 Windows 8 中自动启动:http://www.bleepingcomputer.com/forums/t/480250/keyboard-does-not-pop-up-automatically/ 显然它适用于 Windows 7 平板电脑,但我无法测试,因为我这里只有 Windows 8 平板电脑.
【问题讨论】:
-
只需将您的 EXE 项目的平台目标设置更改为“AnyCPU”。
-
不幸的是,它需要 x86 才能用于与之交互的某些 3rd 方软件。
-
只是为了测试,我继续更改为“AnyCPU”。键盘仍然无法在我的 Win7 64 位桌面上启动,但在 Win8 64 位平板电脑上启动。有什么想法吗?
-
我已经实现了 [这里][1] 描述的方法。它也适用于Win7。 [1]:stackoverflow.com/questions/15183720/wpf-windows-8-tabtip-close
标签: c# windows winforms 32bit-64bit on-screen-keyboard