如何用c ++关闭屏幕键盘上的窗口

时间:2014-03-10 19:48:03

标签: c++ windows on-screen-keyboard

我正在尝试用c ++代码关闭Windows屏幕键盘(osk.exe),但没有任何成功。

HWND kbIsOpen = FindWindow(TEXT("OSKMainClass"),NULL);
CloseWindow(kbIsOpen);  

CloseWindowSendMessage没有做任何事情。 请注意,问题不在kbIsOpen中,getLastError也会返回5 (ERROR_ACCESS_DENIED)

我可以做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:2)

假设FindWindow返回有效的窗口句柄,SendMessage(kbIsOpen, WM_DESTROY, NULL, NULL);应该关闭它。 (虽然这是一种危险的方法。请先尝试发送WM_CLOSEWM_QUIT。)

然而,键盘窗口可能会抛弃破坏消息,并且无论你向它投掷什么,它都会继续前进。我正在运行Windows 7,所以我不能告诉你自己。

<不重要的意见> bkIsOpen听起来像一个布尔变量的名称,告诉你窗口是否打开,而不是窗口的句柄(如果存在)。 < /不重要的意见>