Я работаю над приложением WPF/C# для заполнения форм. Я пытаюсь найти способ определить, сглажена ли клавиатура TapTip (клавиатура TabTip.exe/метрополитена для рабочего стола Windows 8)/не видна в окнах 8.Обнаруживать, если экранная клавиатура открыта (TabTip.exe)
Я смог обнаружить, если osk-клавиатура (экранная клавиатура osk.exe/windows) минимизирована, но такой же процесс не работает с клавиатурой TabTip.
Чтобы обнаружить, если клавиатура минимизируется I:
1. Найдите процесс музыкального инструмента
2. Получить MainWindowHandle
3. Используйте свойство showCmd из WINDOWPLACEMENT (найдено с помощью MainWindowHandle)
4. Использование showCmd значение, чтобы определить, если окно свернуто
проблемы я столкнулся являются:
- процесс TabTip имеет MainWindowHandle 0 (так что я не могу использовать его, чтобы найти информацию WINDOWPLACEMENT)
- значения для WINDOWPLACEMENT.showCmd одинаковы, когда TabTip открыто и свести к минимуму
Для того, чтобы найти дескриптор окна TabTip я использовал EnumWindows, чтобы получить все окна ручки, GetWindowThreadProcessId получить идентификаторы процессов, а затем по сравнению идентификаторы идентификатора процесса TabTip.
Любая помощь с этим была бы оценена. Также это мой первый пост. Я думаю, что я сделал это правильно, но если нет, то дайте мне знать, как это исправить.
Спасибо за быстрый ответ. Я переключился на использование FindWindow, как вы предполагали. Затем я использовал Spy ++, чтобы убедиться, что найдено правильное окно. К сожалению, при использовании GetWindowPlacement showCmd имеет значение 0 (SW_HIDE), когда процесс клавиатуры был убит. Остальное время showCmd имеет значение 1 (SW_NORMAL) независимо от того, было ли оно видимым. Я также попытался использовать GetWindowRect, чтобы увидеть, было ли окно скрыто от экрана. Когда не видно, возвращаемые координаты были такими же, как и последняя видимая позиция на экране. – user
Вы когда-нибудь это выясняли? Я пробовал оба метода и, похоже, не работал. Я думаю, что TabTip.exe - это особый процесс, который связан со службой, поэтому стандартные методы определения того, минимизируется/закрывается ли hwnd, кажется, не работают. – YasharBahman
У меня никогда не было возможности заглянуть в нее дальше, извините! – Erik