Перейти к содержимому

Фотография

Как найти контекстное меню


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 21 января 2012 - 18:53

Контекстное меню вызывается правым кликом мыши по иконке, находящейся в главном окне. Как можно сделать выбор в этом меню из скрипта? В свойствах иконки его нет. Судя по имени (WinFormsObject("cmsImStatus")), оно принадлежит самому процессу - Sys.Process("MyProcess").WinFormsObject("cmsImStatus"). Хотелось бы добраться до него так, как например, до существующего главного меню. С ним проще, оно является потомком главного окна программы и отображается в его свойствах. Поэтому, поступаю так Sys.Process("MyProcess").WinFormsObject("MainWindow").StripMainMenu.Click("Tools|Reconnect IM"). А как же можно добраться до контекстного?
  • 0

#2 XXX

XXX

    Опытный участник

  • Members
  • PipPipPipPip
  • 284 сообщений
  • ФИО:Денис Викторович
  • Город:Санкт-Петербург


Отправлено 21 января 2012 - 20:20

Контекстное меню вызывается правым кликом мыши по иконке, находящейся в главном окне. Как можно сделать выбор в этом меню из скрипта? В свойствах иконки его нет. Судя по имени (WinFormsObject("cmsImStatus")), оно принадлежит самому процессу - Sys.Process("MyProcess").WinFormsObject("cmsImStatus"). Хотелось бы добраться до него так, как например, до существующего главного меню. С ним проще, оно является потомком главного окна программы и отображается в его свойствах. Поэтому, поступаю так Sys.Process("MyProcess").WinFormsObject("MainWindow").StripMainMenu.Click("Tools|Reconnect IM"). А как же можно добраться до контекстного?



На моем примере это делалось примерно так:
w.ClickItemR(1,true);
w.PopupMenu.Click("Close") 

  • 0

#3 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 22 января 2012 - 08:08

На моем примере это делалось примерно так:
w.ClickItemR(1,true);
w.PopupMenu.Click("Close") 
[/quote]

Ну так в том то и дело. Во-первых у w нет объекта PopupMenu. Во-вторых окно этого самого PopupMenu является child-ом непосредственно процесса, а не какого-нибудь из его окон (см. мой пример).
  • 0

#4 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 22 января 2012 - 10:50

Какой скрипт получается, если сделать Record ?
  • 0

#5 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 22 января 2012 - 12:26

Какой скрипт получается, если сделать Record ?


Получается простая запись кликов и никаких меню. Примерно так:
Правый клик по иконке: Sys.Process("МойПроцесс").WinFormsObject("ГлавноеОкно").WinFormsObject("Иконка").ClickR(13, 6);
Клик по опции появившегося контекстного меню: Sys.Process("МойПроцесс").WinFormsObject("КонтекстноеМеню").Click(39, 81);
  • 0

#6 Rebz

Rebz

    Опытный участник

  • Members
  • PipPipPipPip
  • 471 сообщений


Отправлено 23 января 2012 - 06:59

У меня это примерно так работает:
Set p1 = Sys.Proccess("мой процесс")
  Call p1.MainForm.wiNDS.ClickR
  p1.Popup("Context").MenuItem("с НДС").Click ' - тут как раз и указываем значение
Варианты есть, главное поймать object spy всплывающую менюшку и успеть изучить её :)
  • 0

#7 mskffo

mskffo

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мария
  • Город:Москва

Отправлено 24 января 2012 - 12:03

Контекстное меню вызывается правым кликом мыши по иконке, находящейся в главном окне. Как можно сделать выбор в этом меню из скрипта? В свойствах иконки его нет. Судя по имени (WinFormsObject("cmsImStatus")), оно принадлежит самому процессу - Sys.Process("MyProcess").WinFormsObject("cmsImStatus"). Хотелось бы добраться до него так, как например, до существующего главного меню. С ним проще, оно является потомком главного окна программы и отображается в его свойствах. Поэтому, поступаю так Sys.Process("MyProcess").WinFormsObject("MainWindow").StripMainMenu.Click("Tools|Reconnect IM"). А как же можно добраться до контекстного?

столкнулась с той же проблемой...решения пока нет, но я в поисках :yes:
  • 0

#8 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 28 января 2012 - 06:46

Нашел решение, как говорится, не отходя от кассы - здесь же на форуме. В связи с этим есть некоторые вопросы: Чем отличается Item от Item_2? При замене Item_2 на Item скрипт работает точно также.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных