Как запустить виртуальную клавиатуру без потери фокуса в WinXP? - PullRequest
0 голосов
/ 12 июля 2010

Мне нужно запустить виртуальную клавиатуру (а именно click-n-type) из моего приложения, чтобы разрешить ввод данных пользователем в активном поле.Когда пользователь фокусируется на окне редактирования в окне моего приложения, появляется виртуальная клавиатура, чтобы разрешить ввод.

Однако я не могу заставить это работать одним щелчком мыши.Когда я использую «start click-n-type.exe», клавиатура запускается нормально, но окно редактирования теряет фокус.Когда я использую «start / min click-n-type.exe», поле редактирования сохраняет фокус, но клавиатура сворачивается.Можно ли как-то изменить фокус и виртуальную клавиатуру на месте?

1 Ответ

0 голосов
/ 12 июля 2010

Обычно я бы предложил загрузить ваше приложение как в процессе dll, но для этого может потребоваться много перепрограммирования.Вместо этого это может помочь:

  • Всегда загружайте приложение, делайте его невидимым
  • Когда активное поле получает пользовательский ввод, измените настройки формы на без полей и всегда сверху;
  • Ваше приложение теперь должно быть использовано.Другое приложение теперь следующее в Z-Order.Убедитесь, что у вас есть дескриптор окна;
  • Когда кто-то что-то печатает или щелкает что-то на вашей виртуальной клавиатуре, переключите фокус (пользователь не заметит, вы всегда сверху) и используйте SendKeys;
  • Затем переключите фокус обратно на ваше приложение.

Существуют и другие способы написания таких приложений, которые более удобны, но требуют глубокого понимания модели обмена сообщениями в окне и способов загрузки / выгрузки.dlls из других приложений.

...