c# - 我如何以编程方式操作 Windows 7 屏幕键盘 osk : Move, 调整大小,删除标题栏/标题

标签 c# wpf windows-7 keyboard on-screen-keyboard

我正在开发一个 WPF 应用程序,我想在其中以“始终存在”的方式显示内置的 Windows 7 屏幕键盘。所以我想:

  1. 将其移动到特定位置

  2. 设置为一定的宽高

  3. 移除标题/标题栏,这样用户就无法移动或关闭它

  4. 取消调整大小的能力(或与此相关的任何其他用户调整)。

我已经尝试了所有典型的 API 函数(MoveWindow、SetWindowPos、SetWindowLong 等...),但它拒绝执行任何操作。代码目前适用于所有其他进程和应用程序(例如 Internet Explorer 和命令提示符);就好像 api 调用不适用于 osk,或者它被“锁定”了一样。我错过了什么?提前致谢。

最佳答案

我用 Spy++ 检查过,屏幕键盘使用了一种叫做“DirectUIHWND”的东西。您可能希望查看 DirectUIHWND API。

一个可能有用的链接:

另外,有人警告说DirectUI是undocumented .

关于c# - 我如何以编程方式操作 Windows 7 屏幕键盘 osk : Move, 调整大小,删除标题栏/标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608393/

相关文章:

c# - 为什么 C# 结构不能返回对其成员字段的引用?

c# - MVVM C#​​6 RelayCommand 自动或表达式主体属性

java - 从(或将 NetworkInterface 映射到)jpcap 设备路径获取接口(interface)名称/地址

c# - 查询事件日志时的越权操作

c# - 无法加载文件或程序集 'System.ServiceModel.Web, Version=4.0.0.0'

c# - Entity Framework Mysql 嵌套属性

c# - WPF 字符串资源中的换行符

WPF MVVM 数据绑定(bind) - 检查空间,然后清除复选框

visual-studio-2008 - Visual Studio 2008是否可以与Windows 7 Pro 64位一起很好地工作

c# - 测试异步方法不会给出一致的结果