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

Фотография

Silktest и WPF приложения.Возможно ли?


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

#1 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 25 марта 2008 - 18:09

Народ, возможно ли тестировать в Silktest'е WPF приложения с ихними контролами? (Windows Declarations ничего не определяет, кроме DialogBox'а) Если возможно, то как? Если нет, может есть какие-то другие методы автоматического тестирования? :)
  • 0

#2 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 26 марта 2008 - 12:32

Или может как-то можно прикрутить WPF'овские классы и т.д. к Силку? Никто не пробовал?
  • 0

#3 Dmitry_NS

Dmitry_NS

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

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

Отправлено 26 марта 2008 - 14:20

Или может как-то можно прикрутить WPF'овские классы и т.д. к Силку? Никто не пробовал?

Почитайте релиз-ноуты в разделе поддерживаемых технологий. Если WPF там нет, то никак вы эти классы не раскопаете.
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#4 vass

vass

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

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

Отправлено 26 марта 2008 - 15:00

... разве что - сделать им обертки через Extension Kit и вызывать их (хотя это конечно не кошерно...)
  • 0

#5 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 27 марта 2008 - 09:29

... разве что - сделать им обертки через Extension Kit и вызывать их (хотя это конечно не кошерно...)

vass, а можно по-подробней, как это сделать, я не совсем представляю как это сделать. Это был бы классный выход,ты бы мне очень сильно помог :aggressive: Плиизз.
  • 0

#6 vass

vass

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

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

Отправлено 31 марта 2008 - 17:13

если я правильно понял - то это .НЕТ-овские контролы. у любого .НЕТовского кода есть такая штука как reflection - т.е. его код можно вызывать из некотрого внешнего dll, который загружается к программе. Т.е. вызов пойдет из силка в длл, а уже оттуда в контрол.
За более подробной информацией - обращайтесь к разделам помощи Силка.
Если это не .НЕТ, то шансы еще есть - если это например экспортируемые классы в С++ и т.д.
Их тоже можно по аналогичной схеме обрабатывать.

Увы, конкретный пример был бы слишком сложен для приведения на форуме :(

PS: Попробуйте обратиться к программмистам - чтобы они написали dll, функции в которой использовали бы только int-ы и char*-ы и работали с этими контролами. А потом уже Вы их из силка вызывали.
  • 0

#7 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 01 апреля 2008 - 14:13

если я правильно понял - то это .НЕТ-овские контролы. у любого .НЕТовского кода есть такая штука как reflection - т.е. его код можно вызывать из некотрого внешнего dll, который загружается к программе. Т.е. вызов пойдет из силка в длл, а уже оттуда в контрол.

Дело в том, что WPF - это .NET 3.0-3.5. А как подключить к Силку DLL и вызывать из нее каманды (из DLL)? Это делается через Extension Enabler?
  • 0

#8 vass

vass

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

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

Отправлено 02 апреля 2008 - 08:02

нет, это можно сделать напрямую, например так :

[-] dll "user32.dll"
	[ ] LRESULT SendMessage_SB (HWND hWnd, UINT uiMsg, out WPARAM wParam, out LPARAM lParam) alias "SendMessageA"
	[ ] 
[ ] 
[-] POINT GetScrollBarRange (WINDOW wCtrl)
	[ ] WPARAM min = 0
	[ ] LPARAM max = 0
	[ ] const UINT SBM_GETRANGE = 0x00E3 
	[ ] SendMessage_SB (wCtrl.hWnd, SBM_GETRANGE, min, max)
	[ ] return [POINT]{min, max}
[ ] 
[-] INTEGER GetScrollBarPos (WINDOW wCtrl)
	[ ] const UINT SBM_GETPOS = 0x00E1
	[ ] return SendMessage (wCtrl.hWnd, SBM_GETPOS, 0, 0)
т.е. вызывается WinAPI dll, такую можно и самому написать на любом языке.
или через Extension KIT - т.е. такая dll, в которой можно написать свой класс в понятном для силка виде и подкючить его к системе. Но там гораздо сложнее описывается (зато проще использовать), поэтому нужно обращаться к документации СилкТеста - там есть примеры как для 1го так и для 2го ;)
  • 0

#9 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 02 апреля 2008 - 10:59

Через Extension KIT - т.е. такая dll, в которой можно написать свой класс в понятном для силка виде и подкючить его к системе. Но там гораздо сложнее описывается (зато проще использовать), поэтому нужно обращаться к документации СилкТеста - там есть примеры как для 1го так и для 2го ;)

vass, а как Вы думаете, может помочь подключение DLL и использование Extension Kit если Window Declarations даже не видит этих объектов вообще, то есть видит только DialogBox где они расположены и все? Или все же шанс существует, что с помощью Extension Kit можно научить Силк "видеть" эти объекты?
  • 0

#10 vass

vass

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

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

Отправлено 02 апреля 2008 - 11:07

Я думаю, что во-первых стОит попробовать включить это (экстеншены) для того, окна, которое сейчас видится DialogBox'ом, чтобы оно его увидело дотнет контролом :)
ну а вообще - я уверен, что при помощи dll можно реализовать любой (разумеется, с ограничением на время разработки :victory: ) доступ :)
вопрос только в том - сколько на это у вас есть ресурсов и что вы хотите получить в результате.
  • 0

#11 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 02 апреля 2008 - 15:29

Я думаю, что во-первых стОит попробовать включить это (экстеншены) для того, окна, которое сейчас видится DialogBox'ом, чтобы оно его увидело дотнет контролом :)

Включил в Extension Enabler например GalaSoftLb.Wpf.Demo.exe (WPF приложение для примера), включил для него .NET. При попытке запуска Windows Declarations выдется ошибка:
*** Error: Unable to load extensions: Enabled extension(s) for GalaSoftLb.Wpf.Demo.exe not installed: dotnet.dll
Как выйти из этой ситуации?
  • 0

#12 Hunter_ua

Hunter_ua

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

  • Members
  • Pip
  • 47 сообщений
  • ФИО:Андрей

Отправлено 02 апреля 2008 - 15:29

Я думаю, что во-первых стОит попробовать включить это (экстеншены) для того, окна, которое сейчас видится DialogBox'ом, чтобы оно его увидело дотнет контролом :)

Включил в Extension Enabler например GalaSoftLb.Wpf.Demo.exe (WPF приложение для примера), включил для него .NET. При попытке запуска Windows Declarations выдется ошибка:
*** Error: Unable to load extensions: Enabled extension(s) for GalaSoftLb.Wpf.Demo.exe not installed: dotnet.dll
Как выйти из этой ситуации? Что я делаю неправильно?
  • 0

#13 vass

vass

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

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

Отправлено 07 апреля 2008 - 14:14

скопируйте этот dotnet.dll в папку с GalaSoftLb.Wpf.Demo.exe
... к сожалению у меня GalaSoftLb.Wpf.Demo.exe не запустился, нет 3го дотнета :new_russian:
  • 0


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

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