有没有办法让 c# 停靠 windows 10 的屏幕键盘?
Is there a way for c# to dock onscreen keyboard of windows 10?
您可以使用以下 C# 代码打开 Windows 10 屏幕键盘:
System.Diagnostics.Process.Start("osk.exe");
在 C# 中有没有办法在打开时将此键盘停靠在屏幕底部?
我需要在屏幕键盘上创建与 'dock' 按钮相同的效果。
osk.exe 支持未记录的命令行参数 /dockbottom
。但是,运行 osk.exe /dockbottom
只是将键盘放置在屏幕底部,与停靠不完全相同。我不知道这个参数在多远之前起作用,但我确认它在 Windows 8 和 10 中起作用。
我认为没有办法实际对接 (app bar docking) programmatically. Faking a click on the UI button might work but you would have to use UI Automation because it is not a real button, the whole window is a DirectUIHWND window.
作为 hack,您可以在 HKEY_CURRENT_USER\Software\Microsoft\Osk
和 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
下将名为 Dock
的 REG_DWORD 设置为 1
(这是一个可变密钥,因此您必须这样打开它)而 osk.exe 不是 运行。当您再次启动它时,它将读取停靠设置并开始停靠。
注意:如果屏幕分辨率设置过低,则此停靠模式不可用。
Windows 8 及更高版本还有一种不同的屏幕键盘,称为触摸键盘。您可以使用 IFrameworkInputPane
.
控制此键盘
您可以使用以下 C# 代码打开 Windows 10 屏幕键盘:
System.Diagnostics.Process.Start("osk.exe");
在 C# 中有没有办法在打开时将此键盘停靠在屏幕底部?
我需要在屏幕键盘上创建与 'dock' 按钮相同的效果。
osk.exe 支持未记录的命令行参数 /dockbottom
。但是,运行 osk.exe /dockbottom
只是将键盘放置在屏幕底部,与停靠不完全相同。我不知道这个参数在多远之前起作用,但我确认它在 Windows 8 和 10 中起作用。
我认为没有办法实际对接 (app bar docking) programmatically. Faking a click on the UI button might work but you would have to use UI Automation because it is not a real button, the whole window is a DirectUIHWND window.
作为 hack,您可以在 HKEY_CURRENT_USER\Software\Microsoft\Osk
和 HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\osk
下将名为 Dock
的 REG_DWORD 设置为 1
(这是一个可变密钥,因此您必须这样打开它)而 osk.exe 不是 运行。当您再次启动它时,它将读取停靠设置并开始停靠。
注意:如果屏幕分辨率设置过低,则此停靠模式不可用。
Windows 8 及更高版本还有一种不同的屏幕键盘,称为触摸键盘。您可以使用 IFrameworkInputPane
.