- VS 2010
- Разработка 32-разрядное приложение, которое работает на 64-битной ОС (Win7, Win8 - настольное приложение)
- C#
- .NET 4.0
- WinForms
Я нашел много потоков на запуск экранной клавиатуры Windows (osk.exe) из приложения, но я бегу в некоторых проблем. Похоже, что я запускаю 32-битное приложение в 64-разрядной ОС. Я пробовал код, размещенный WooCaSh здесь: Keyboard on the screen in WinFormsКак использовать Windows На экранной клавиатуры в WinForms C#
Но ни один из трех разных путей не работает для меня. Для пути «sysnative» Process.Start «Не удается найти указанный путь». Для путей system32 и osk.exe появляется диалоговое окно «Не удалось запустить экранную клавиатуру».
Я нашел возможный обходной путь здесь, который является немного более сложным, чем то, что я искал (пост по eryang): http://social.msdn.microsoft.com/Forums/en-US/netfx64bit/thread/10ebc62f-e6d7-4072-9fd1-ea3784a0966f/
- Есть ли более простой или правильный способ сделать это?
- Я надеялся, что запуск моего приложения на планшете автоматически запустит экранную клавиатуру, когда пользователь выберет текстовое поле, но не повезет. Это нормально или я что-то упускаю? EDIT: обнаружено, что клавиатура не запускается автоматически в Win8 при работе в рабочем режиме (это мое приложение): http://www.bleepingcomputer.com/forums/t/480250/keyboard-does-not-pop-up-automatically/ По-видимому, это работает на планшетах Win7, но я не могу проверить, потому что у меня есть только таблетки Win8.
Просто измените настройку целевой платформы в проекте EXE на «AnyCPU». –
К сожалению, для некоторых сторонних программ, с которыми он взаимодействует, должен быть x86. – Tara
Просто для тестирования я пошел дальше и перешел на «AnyCPU». Клавиатура по-прежнему не запускается на моем 64-разрядном рабочем столе Win7, но запускается на 64-разрядном планшете Win8. Есть идеи? – Tara