有没有办法让c#与Windows10的屏幕键盘对接?
您可以使用以下方法从C代码打开Windows 10屏幕键盘:有没有办法让c#与Windows10的屏幕键盘对接?,c#,windows,on-screen-keyboard,C#,Windows,On Screen Keyboard,您可以使用以下方法从C代码打开Windows 10屏幕键盘: System.Diagnostics.Process.Start("osk.exe"); 在C#中是否有方法在打开键盘时将其固定在屏幕底部? 我需要创建与屏幕键盘上的“dock”按钮相同的效果。osk.exe支持未记录的命令行参数/dockbottom。但是,运行osk.exe/dockbottom只会将键盘放在屏幕底部,这与对接并不完全相同。我不知道这个参数的工作时间有多远,但我确认它在Windows8和Windows10中工作
System.Diagnostics.Process.Start("osk.exe");
在C#中是否有方法在打开键盘时将其固定在屏幕底部?我需要创建与屏幕键盘上的“dock”按钮相同的效果。osk.exe支持未记录的命令行参数
/dockbottom
。但是,运行osk.exe/dockbottom
只会将键盘放在屏幕底部,这与对接并不完全相同。我不知道这个参数的工作时间有多远,但我确认它在Windows8和Windows10中工作
我不认为有一种方法可以通过编程实现对接。假装点击UI按钮可能会起作用,但您必须使用UI自动化,因为它不是一个真正的按钮,整个窗口都是一个窗口
作为黑客,你可以在Osk.exe未运行时,在HKEY\u CURRENT\u USER\Software\Microsoft\Osk
和HKEY\u CURRENT\u USER\Software\Microsoft\windowsnt\CurrentVersion\Accessibility\ATConfig\Osk
下将名为Dock
的注册表项设置为1
。再次启动时,它将读取停靠设置并启动停靠
注意:如果屏幕分辨率设置过低,则此对接模式不可用
Windows8和更高版本也有一个不同的屏幕键盘,称为触摸键盘。您可以使用控制此键盘。osk.exe支持未记录的命令行参数
/dockbottom
。但是,运行osk.exe/dockbottom
只会将键盘放在屏幕底部,这与对接并不完全相同。我不知道这个参数的工作时间有多远,但我确认它在Windows8和Windows10中工作
我不认为有一种方法可以通过编程实现对接。假装点击UI按钮可能会起作用,但您必须使用UI自动化,因为它不是一个真正的按钮,整个窗口都是一个窗口
作为黑客,你可以在Osk.exe未运行时,在HKEY\u CURRENT\u USER\Software\Microsoft\Osk
和HKEY\u CURRENT\u USER\Software\Microsoft\windowsnt\CurrentVersion\Accessibility\ATConfig\Osk
下将名为Dock
的注册表项设置为1
。再次启动时,它将读取停靠设置并启动停靠
注意:如果屏幕分辨率设置过低,则此对接模式不可用
Windows8和更高版本也有一个不同的屏幕键盘,称为触摸键盘。您可以使用控制此键盘。您可以尝试此操作,请参见:。可能会对您有所帮助。Windows 8+中有两个屏幕键盘,osk.exe是Windows 2000/XP中的旧键盘。Win10使用非常不同的方式显示osk,因此旧的黑客攻击不再有效。这不是什么实际问题,用户只需单击“Mv Dn”一次,就可以记住上次显示的位置。您可以尝试此方法,请参见:。可能会对您有所帮助。Windows 8+中有两个屏幕键盘,osk.exe是Windows 2000/XP中的旧键盘。Win10使用非常不同的方式显示osk,因此旧的黑客攻击不再有效。这不是什么实际问题,用户只需单击“Mv Dn”一次,就可以记住它最后显示的位置。注册表解决方法似乎可行,但问题是,当用户单击(突出显示的)dock按钮时,它也会更改注册表值,因此下一次,它会再次开始取消锁定。除了每次需要显示屏幕键盘时修改注册表值之外,还有什么窍门吗?因为应用程序必须运行提升版,对吗?@aros你不必提升版才能写入HKCU。哦,真的吗?有趣。那我就试试看。感谢您提供的信息。注册表解决方案似乎很有效,但问题是,当用户单击(突出显示的)停靠按钮时,它也会更改注册表值,因此下次它将再次开始取消停靠。除了每次需要显示屏幕键盘时修改注册表值之外,还有什么窍门吗?因为应用程序必须运行提升版,对吗?@aros你不必提升版才能写入HKCU。哦,真的吗?有趣。那我就试试看。谢谢你的信息。