Автор Тема: ControlCommand в ComboBox в скрытом окне  (Прочитано 853 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Marjel [?]

  • Новичок
  • *
  • Сообщений: 9
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Подскажите, пожалуйста.
В окне combobox. С помощью ControlCommand посылаю текст нужного пункта. Если окно видимо - всё работает, пункт выбирается и скрипт выполняет то что требуется. Если окно скрыто, то в комбобоксе появляется значение но не исполняется, тоесть не происходит то что должно при выборе данного пункта. Пробовал делать активным окно, посылал все возможные фокусы. Работает только если делать окно видимым на секнду, show непосредственно перед controlcommand а затем заново скрывать. Но ведь так не должно быть?

Русское сообщество AutoIt

ControlCommand в ComboBox в скрытом окне
« Отправлен: Август 03, 2017, 02:21:45 »

Оффлайн Marjel [?]

  • Новичок
  • *
  • Сообщений: 9

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: ControlCommand в ComboBox в скрытом окне
« Ответ #1, Отправлен: Август 03, 2017, 14:30:38 »
ок, пример:

Код: AutoIt [Выделить]
#RequireAdmin
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <MouseTrapEvent.au3>

$basewind=GUICreate("20000", 200, 100)
$chosf=GUICtrlCreateCombo("", 35, 35, 55, 20)

GUICtrlSetData($chosf, "P1|P2|P3|P4|P5")

GUISetState(@SW_SHOW, $basewind)

_MouseTrapEvent("XClick1",  "XC1")
_MouseTrapEvent("XClick2",  "XC2")

While 1

$nMsg = GUIGetMsg()

Select

Case $nMsg=$GUI_EVENT_CLOSE
        Exit
Case $nMsg=$chosf
        chosex()

EndSelect

WEnd

Func XC1(); первая боковая кнопка мыши скрывает/отображает окно

If Not(BitAND(WinGetState($basewind),2)) Then
    GUISetState(@SW_SHOW, $basewind)
else
    GUISetState(@SW_HIDE, $basewind)
EndIf

return 1

EndFunc

Func XC2(); вторая боковая кнопка мыши отправляет значение в комбобокс

ControlCommand($basewind, "", $chosf, "SelectString", "P3")

return 1

EndFunc

Func chosex()

Beep (1600,150)

EndFunc
 


Если при видимом окне нажать вторую боковую кнопку мыши то в комбобокс отправится "P3" и произойдёт бип. Если же сначала скрыть окно первой боковой клавишей, а потом нажать вторую боковую, то бипа не происходит. Если после этого снова отобразить окно то видим что нужное значение было отправлено (при условии офк, что перед скрытием был выставлен другой P), но дальше дело не пошло.

Элементарная вещь же вроде. Где я туплю???

Помечен как лучший ответ пользователем Marjel Отправлен Август 03, 2017, 17:28:32

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3936
  • Репутация: 1042
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: ControlCommand в ComboBox в скрытом окне
« Ответ #2, Отправлен: Август 03, 2017, 16:34:30 »
Marjel
OffTopicЧтобы запустить ваш пример мне нужно:
1. Купить мышь с боковыми кнопками
2. Перерыть инет в поисках MouseTrapEvent.au3
3. Купить/подключить колонки/наушники, чтобы услышать звук
или переписать ваш пример, что делает его бесполезным.
Постарайтесь в следующий раз приводить примеры попроще, чтобы они запускались "из коробки".

Цитировать
Но ведь так не должно быть?
Именно так и должно быть при использовании функции GuiSetState. В скрытом окне некоторые события не обрабатываются: post #11
Чтобы скрыть от AutoIt факт скрытия окна :) используйте _WinAPI_ShowWindow
Код: AutoIt [Выделить]
If Not(BitAND(WinGetState($basewind),2)) Then
;~     GUISetState(@SW_SHOW, $basewind)
    _WinAPI_ShowWindow($basewind, @SW_SHOW)
else
;~     GUISetState(@SW_HIDE, $basewind)
    _WinAPI_ShowWindow($basewind, @SW_HIDE)
EndIf


Оффлайн Marjel [?]

  • Новичок
  • *
  • Сообщений: 9

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: ControlCommand в ComboBox в скрытом окне
« Ответ #3, Отправлен: Август 03, 2017, 17:30:23 »
Спасибо огромное!

Русское сообщество AutoIt

Re: ControlCommand в ComboBox в скрытом окне
« Ответ #3 Отправлен: Август 03, 2017, 17:30:23 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4126 Просмотров
Последний ответ Ноябрь 22, 2009, 18:45:11
от Medic84
14 Ответов
7678 Просмотров
Последний ответ Декабрь 11, 2009, 22:24:16
от Medic84
0 Ответов
1978 Просмотров
Последний ответ Январь 01, 2011, 18:28:36
от lexaSF
4 Ответов
4290 Просмотров
Последний ответ Май 22, 2012, 19:19:55
от Вовчик55
7 Ответов
3364 Просмотров
Последний ответ Февраль 05, 2012, 21:46:36
от madmasles
0 Ответов
1705 Просмотров
Последний ответ Март 01, 2012, 17:19:47
от madmasles
0 Ответов
2272 Просмотров
Последний ответ Март 12, 2012, 17:48:30
от rollex
4 Ответов
2061 Просмотров
Последний ответ Июнь 13, 2014, 13:52:31
от joiner
2 Ответов
1162 Просмотров
Последний ответ Ноябрь 24, 2015, 23:28:22
от Dima1337
7 Ответов
773 Просмотров
Последний ответ Август 25, 2017, 12:54:29
от InnI