C#是否可以停靠Windows 10的屏幕键盘?

时间:2019-01-04 18:14:38

标签: c# windows on-screen-keyboard

您可以使用以下命令通过C#代码打开Windows 10屏幕键盘:

System.Diagnostics.Process.Start("osk.exe");

在C#中,有没有一种方法可以在打开后将此键盘固定在屏幕底部?
我需要在屏幕键盘上创建与“停靠”按钮相同的效果。

1 个答案:

答案 0 :(得分:1)

osk.exe支持未记录的命令行参数/dockbottom。但是,运行osk.exe /dockbottom只是将键盘放在屏幕的底部,它与停放并不完全相同。我不知道此参数的作用范围有多远,但我确认它在Windows 8和10中都能工作。

我认为没有办法以编程方式实际停靠(app bar停靠)。假使单击UI按钮可能会起作用,但是您必须使用UI Automation,因为它不是真正的按钮,整个窗口都是DirectUIHWND窗口。

作为一种骇客,您可以在Dock1下将名为HKEY_CURRENT_USER\Software\Microsoft\Osk的REG_DWORD设置为HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk(这是一个易失性密钥,因此您必须照此打开) osk.exe没有运行。再次启动它时,它将读取停靠设置并开始停靠。

注意:如果屏幕分辨率设置太低,则无法使用此停靠模式。

Windows 8和更高版本还具有一个不同的屏幕键盘,称为触摸键盘。您可以使用IFrameworkInputPane控制此键盘。