Это мой опыт запуска OSK с помощью System.Diagnostics.Process.Start("osk.exe"). Я тестировал только 64-разрядную версию Windows 7 и 64-разрядную версию Windows 10 с использованием Visual Studio 2015. В двух версиях Windows поведение отличается.
Есть три соответствующих варианта сборки:
- Любой ЦП, предпочитать 32-битный флажок (по умолчанию):
В Windows 7 использование osk.exe работает нормально.
В Windows 10 ни один из osk.exe, \Windows\System32\osk.exe или \windows\SysWOW64\osk.exe не работает (вероятно, ваша ситуация).
- Любой процессор, предпочитаю 32-битный, не отмечено:
В Windows 7 использование osk.exe работает нормально.
В Windows 10 работает только \Windows\System32\osk.exe.
- x64:
В Windows 10 работают файлы osk.exe и \Windows\System32\osk.exe.
Целевая платформа (любой процессор) и флажок «Предпочитать 32-разрядную версию» находятся в свойствах проекта, вкладка «Сборка». По умолчанию установлен флажок Prefer 32-bit (делает исполняемые файлы меньшего размера). Это означает, что приложение, скорее всего, работает в 32-битном режиме в 64-битной системе. В диспетчере задач вы увидите *32 в Windows 7 и (32-разрядная версия) в Windows 10.
Если флажок не установлен, приложение будет работать в 64-битном режиме в 64-битной системе, а вызов \Windows\System32\osk.exe найдет все, что ему нужно. Я не исследовал, почему поведение изменилось в Windows 10, но суть в том, чтобы использовать Any CPU с отключенным Prefer 32-bit и указать полный путь к OSK, то есть \Windows\System32\osk.exe.
\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe запустит TabTip.
person
Kenneth Evans
schedule
19.11.2016
<TextBox />
находится в фокусе (и обнаруживается сенсорный экран). Вы сами определяете режим планшета или устройство, которое вы используете, на самом деле является планшетом? Не могли бы вы рассказать нам немного больше о масштабах вашего приложения и о том, чего вы пытаетесь достичь? - person Geoff James   schedule 15.08.2016