Сценарий Perl GUI, который должен работать с приложением, свернут Как заставить это остаться таким? Проблема, связанная с фокусом - PullRequest
1 голос
/ 28 декабря 2010

Я пытаюсь разработать сценарий Perl, который очень просто управляет приложением (заполняет несколько полей, нажимает некоторые клавиши). Я реализовал все, используя Win32 :: GuiTest. Цель состоит в том, чтобы заставить его работать с минимизированным приложением в трее, что позволяет мне одновременно использовать ПК.

Я использую такие функции, как: WMSetText, SelComboItem, SendMessage, PushChildButton.

Все они работают нормально, кроме PushChildButton. Всякий раз, когда вызывается эта функция, я теряю фокус (хотя контролируемое приложение остается минимизированным) от того, что я делаю.

Приложение, которое я использую перед вызовом PushChildButton: http: // i. imgur.com/7B5kj.png

Приложение, которое я использую после вызова PushChildButton: http: // i. imgur.com/VCskW.png

Я пытался убить фокус, как это, но это не сработало:

my $msg_id=0x08; 
SendMessage( @_[ 0 ], $msg_id, @_[ 1 ], undef ); 

@_[ 0 ] - handle to the application

@_[ 1 ] -handle to the "Edit Control" that I think* that takes the focus after pressing the button 

* Позвольте мне уточнить это немного. Приложение по-прежнему остается свернутым, но иногда этот ресурс «Edit Control» содержит строки, которые объединяются с клавишами, которые я нажал, теряя фокус.

PS: я начинающий с Perl и WinAPI (на самом деле это мой первый проект), так что я мог бы объяснил вещи немного неясно. Пожалуйста, спросите меня обо всем, что вы чувствуете, что я следует уточнить.

1 Ответ

0 голосов
/ 28 декабря 2010
  1. Скорее всего, это проблема Windows, а не Perl.Люди делают это обычно с обычным окном, перемещенным за пределы видимого диапазона рабочего стола, например, влево, x = -600.

  2. Вместо этого используйте Win32 :: GUI.Это избавит вас от головной боли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...