java 如何打开osk_如何通过程序(C++语言开发)去将osk隐藏或者关闭??

本文介绍了如何通过C++编程关闭或隐藏操作系统屏幕键盘(osk.exe)。建议使用FindWindow获取窗口句柄,然后发送WM_CLOSE或WM_DESTROY消息来关闭窗口。这种方法适用于处理具有高强制级别的进程,如osk.exe。
摘要由CSDN通过智能技术生成

你好,

感谢您在MSDN论坛发帖提问。

>>如何通过程序(C++语言开发)去将osk隐藏或者关闭??

TerminateProcess函数用于无条件地导致进程退出。此函数停止执行进程中的所有线程,并请求取消所有挂起的I / O. 在完成或取消所有挂起的I / O之前,已终止的进程无法退出。当进程终止时,其内核对象不会被销毁,直到具有进程打开句柄的所有进程都释放了这些句柄。一个过程不能阻止自己被终止。Windows API调用只会向应用程序发送关闭窗口事件,但应用程序可以拒绝这一点 。

因为osk.exe在清单中有uiAccess =“true”,它在令牌中有强制标签\高强制等级。 但是你的应用程序,如果在UAC下运行没有提升,通常会有中等强制级别。将SendMessage或PostMessage用于以更高权限运行的应用程序窗口。

我建议你可以尝试使用FindWindow返回一个有效的窗口句柄,以找到需要关闭/最小化的窗口,SendMessage(hwnd,WM_DESTROY,NULL,NULL); 这样应该可以关闭它。 (我建议你首先尝试发送WM_CLOSE或者WM_QUIT。)

if (HWND hwnd = FindWindow(L"OSKMainClass", 0))

{

SendMessage(hwnd, WM_CLOSE, 0, 0);

}

Best Regards,

Jeanine Zhang

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值