Ответы с форумов MSDN

Запуск экранной клавиатуры в 64-битной Windows

Date: 27.02.2018 18:40:22

Что значит из другой папки? Если вы физически пытаетесь скопировать osk.exe в другую папку, это естественно не работает.

У меня

Process.Start("osk");

Нормально запускает экранную клавиатуру из 64-битного приложения, но не работает из 32-битного.

Более того, sysnative почему-то не пашет в Windows 10. Не могу понять почему.

Message 524

Date: 27.02.2018 19:01:58

64-битные приложения, определенно, не работают на 32-битных системах. 

Впрочем, 32-битной Windows 10 в природе не существует.

Если не работает краткий путь, можно использовать полный:

System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Windows),

"System32\\osk.exe");
В x86 теоретически, вместо System32 должно работать Sysnative. Но не работает. 





Message 523

Date: 28.02.2018 4:21:04

Да, точно.

"Process.Start("osk")  работает без проблем "

x86 или x64 ? У меня на x86 так и не заработало. Только через хак с вызовом 64-битного cmd:

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "c:\\windows\\sysnative\\cmd.exe";            
psi.Arguments = "/k start osk && exit";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);

Message 521

Date: 28.02.2018 7:59:59

Я понимаю, что ОС x64 (на х86 бы не было проблемы). Проект под какую архитектуру собираете? (я не знаю, что выбрано по умолчанию в VS 2017)

Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub