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

Фотография

нахождения координат View


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

#1 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 16 декабря 2008 - 13:27

Народ, как применить метод GetRect() к View (Notepad) для нахождения координат View?
Ведь View не является обьєктом окна.

Заранее спасибо! :)
  • 0

#2 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 14:25

Открыл свой notepad.exe. View не нашел нигде.
Во-первых - подозреваю, что это пункт меню ... хотя скорее всего - ошибаюсь :blush:
Во-вторых - даже не знаю -- что конкретно хотелось узнать ?

Вообще-то, координаты используются чаще всего для
а) кликов по данной области (предпочтительно брать координаты относительно Desktop'a)
б) проверок изображения области (CaptureBitmap и его вариации, либо GetPixel из gdi32.dll )
  • 0

#3 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 17 декабря 2008 - 14:53

Открыл свой notepad.exe. View не нашел нигде.
Во-первых - подозреваю, что это пункт меню ... хотя скорее всего - ошибаюсь :blush:
Во-вторых - даже не знаю -- что конкретно хотелось узнать ?

Вообще-то, координаты используются чаще всего для
а) кликов по данной области (предпочтительно брать координаты относительно Desktop'a)
б) проверок изображения области (CaptureBitmap и его вариации, либо GetPixel из gdi32.dll )


View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?
  • 0

#4 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 17 декабря 2008 - 15:25

А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?


Если я правильно понял, задача заключается в том, чтобы выбирать пункт меню, независимо от языка приложения?

Тогда есть путь попроще :)

1) При записи деклараций окон используйте в тегах используйте не Caption, а, например, порядковый номер контрола (#).

2) А лучше дать вашим пунктам меню правильные теги. Например,

tag "View|Вид|Bekijken"

Этот тег говорит силктесту о том, что меню может иметь один из трех кепшенов (View - для англ версии, Вид - для русской и Bekijken - для немецкой).
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#5 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 15:39

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )
  • 0

#6 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 17 декабря 2008 - 15:47

ясно :) У notepad'a для Win2k такой менюшки нет ;)


Хм... Любопытно. Ну в этом меню только один подпункт - Status Bar :)
Причем по умолчанию он отключен...
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#7 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 17 декабря 2008 - 15:56

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )


Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"

Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#8 Steve

Steve

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Миронов Андрей Иванович

Отправлено 17 декабря 2008 - 16:03

View – это меню «Вид» в русском Notepadе (Блокноте).
А мне нужно найти координаты меню View (Вид) для кликов по данной области.
Потому что в зависимости от языка Notepad координаты меню View (Вид) изменяются (на английском Notepadе – это одни координаты, а на немецком или другом Notepadе – другие координаты. )
Так вот, как с помощью GetRect () или другим способом найти координаты View (Вид)?

ясно :) У notepad'a для Win2k такой менюшки нет ;)
в связи с этим присоединяюсь к предыдущему посту - использовать для тега Caption "View", Index "#4" (или - Window ID "$nnn" , хотя для View он неопределен :( )


Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"

Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.



А можно как то с помощью метода GetRect() найти координаты меню View?
  • 0

#9 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 17 декабря 2008 - 17:11

Я еще немного дополню. В теге также можно указывать местоположение контрола. Например,
tag "@(10, 20)"
Но я бы все-таки посоветовал прежде всего попробовать перечислять возможные теги (View, Вид и т.п.) через символ |.

можно. но для обычных Menu/MenuItem оно недоступно.

А можно как то с помощью метода GetRect() найти координаты меню View?

Увы, похоже - не штатными средствами силка :(
я бы копал отсюда :
typedef struct tagMENUITEMINFOA
{
	UINT	cbSize;
	UINT	fMask;
	UINT	fType;		  // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
	UINT	fState;		 // used if MIIM_STATE
	UINT	wID;			// used if MIIM_ID
	HMENU   hSubMenu;	   // used if MIIM_SUBMENU
	HBITMAP hbmpChecked;	// used if MIIM_CHECKMARKS
	HBITMAP hbmpUnchecked;  // used if MIIM_CHECKMARKS
	DWORD   dwItemData;	 // used if MIIM_DATA
	LPSTR   dwTypeData;	 // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
	UINT	cch;			// used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
#if (_WIN32_WINNT >= 0x0500)
	HBITMAP hbmpItem;	   // used if MIIM_BITMAP
#endif
}   MENUITEMINFOA, FAR *LPMENUITEMINFOA;

  • 0

#10 Int_21h

Int_21h

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Александр

Отправлено 17 октября 2011 - 10:03

А почему именно рект?
В Notepad менюшки нормально идентифицируются -
MainWin("*Notepad").Menu("#{id}").MenuItem("#{id}")

И тут еже не зависит будет этот контрол 5х5 пикселей или 100х100.

Если же нужны координаты, то почему не пойти таким путем:
RECT rView = MainWin("*Notepad").Menu("#{id}").MenuItem("#{id}").GetRect()
rView.xPos //OX position
rView.yPos //OY position
rView.xSize //OX size
rView.ySize //OY size

Или я что-то не так понял?
  • 0


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

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