Как закрыть окна на экранной клавиатуре с помощью Stack Overflow

Я пытаюсь закрыть экранную клавиатуру Windows (osk.exe) в коде C ++, но безуспешно.

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

CloseWindow или же SendMessage ничего не делал.
Обратите внимание, что проблема не в kbIsOpen, а также getLastError возвращается 5 (ERROR_ACCESS_DENIED),

Что я могу сделать, чтобы справиться с этой проблемой?

0

Решение

Если предположить, FindWindow возвращает действительный дескриптор окна, SendMessage(kbIsOpen, WM_DESTROY, NULL, NULL); должен закрыть это. (Хотя это довольно опасный способ сделать это. Попробуйте отправить WM_CLOSE а также WM_QUIT первый.)

Однако, возможно, что окно клавиатуры выбрасывает сообщения уничтожения, и просто продолжает работать, независимо от того, что вы к нему добавляете. Я использую Windows 7, поэтому я не могу сказать вам сам.

< неважное мнение> bkIsOpen звучит как имя логической переменной, сообщающей, открыто ли окно, а не дескриптор окна, если оно существует. < / неважное мнение>

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]