PDA

Показать полную графическую версию : controlID - когда параметр отсутствует!?


semiono
02-01-2010, 16:29
http://i.imagehost.org/0276/Snap1.png
Помогите тиснуть в это маленькое окошко - VST Instruments
Основная "родительская" форма Class:MDIClient; Instance:1.
В маленьком окошке, что на картинке нету параметра ID
В хелпе же напротив вся работа с контролами требует ID параметр. Вечно у меня так! :(
Однако я боюсь там ещё массу "подводных камней" может быть.
Ну хотя бы начать... В идеале мне нужно сделать клик на "чёрном фоне" и из него откроется свисающий список меню... ну а там я уже
с помощью Send() разберусь попробую...

Окно VST Instruments может растягивается только вверх/вниз, в ширину оно не ресайзится, так что размер по-горизонтали фиксирован. Но положение окна разумеется может быть случайно...
Так что можно X/Y подобраться... Но пока не получается само окно захватить... Видимо я чего-то просто не знаю.

Creat0R
02-01-2010, 17:15
В идеале мне нужно сделать клик на "чёрном фоне" »
Можно использовать PixelSearch и по координатам кликнуть:


Opt (http://www.autoitscript.com/autoit3/docs/functions/Opt.htm)("PixelCoordMode", 0)

$sTitle = "[CLASS:Cubase SXFrameWindowClass]"
$hWnd = WinGetHandle (http://www.autoitscript.com/autoit3/docs/functions/WinGetHandle.htm)($sTitle)
WinActivate (http://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm)($hWnd)

$aWinPos = WinGetPos (http://www.autoitscript.com/autoit3/docs/functions/WinGetPos.htm)($hWnd)
$aClickCoords = PixelSearch (http://www.autoitscript.com/autoit3/docs/functions/PixelSearch.htm)(0, 0, $aWinPos[2], $aWinPos[3], 0x121918, 0, 1, $hWnd)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) @error (http://www.autoitscript.com/autoit3/docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) ControlClick (http://www.autoitscript.com/autoit3/docs/functions/ControlClick.htm)($hWnd, "VST Instruments", "SteinbergDocWindowClass1", "Main", 1, $aClickCoords[0], $aClickCoords[1])

semiono
02-01-2010, 21:41
Стало получаться когда я по примеру классы расписал... (спасибо!)

$sTitle = "[CLASS:Cubase SXFrameWindowClass]"
$hWnd = WinGetHandle($sTitle)

WinWaitActive("[Class:Cubase SXFrameWindowClass]")

Send("{F11}") ; это вызывает окно VST Instruments из главного окна

WinActivate($hWnd)

$aWinPos = WinGetPos($hWnd)

ControlClick($hWnd,"VST Instruments","SteinbergDocWindowClass1","Main",1,180,38)

Хотя я тут боюсь, что хендл главного окна и маленького дочернего "VST Instruments"
получается что одинаковый, или это нормально? Может доопределить надо?

НО главное что я измучился, не работает
ControlCommand("","","","SelectString",'SampleMoog')
потому-что я опять же не знаю что в title text или id писать, там нифига опять не видно...
Куда именно [Class: #32768] вписать надо? Кстати, это стандартное нечто во всех окнах встречается такое : #32768

http://i.imagehost.org/0477/Snap6.png
SampleMoog - я рукой выделил, скрипт пока не пашет. :(
SampleMoog - должен быть нажат поиском, так как список может иметь неопределённое колличество пунктов.

Creat0R
02-01-2010, 22:00
не работает
ControlCommand("","","","SelectString",'SampleMoog') »
Оно не для меню.

SampleMoog - должен быть нажат поиском, так как список может иметь неопределённое колличество пунктов »
Возможно тут тема Контекстное меню (http://forum.oszone.net/showthread.php?t=150875) будет полезна.




© OSzone.net 2001-2012