|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как кликнуть по кнопке ToolStripButton |
|
|
[решено] Как кликнуть по кнопке ToolStripButton
|
Новый участник Сообщения: 25 |
Профиль | Отправить PM | Цитировать есть приложение, у которого есть есть несколько кнопок класса ToolStripButton. Приложение написано на С#. Как можно кликать по этим кнопкам?
|
|
Отправлено: 18:20, 13-03-2009 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата alexey_a:
и ClassnameNN у них одинаковый? |
|
------- Отправлено: 20:53, 13-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата alexey_a:
|
|
------- Отправлено: 22:58, 13-03-2009 | #3 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Кнопка находится на панели ToolStrip. AutoIt window Info тул выдает следующую инфу для этой панели:
>>>> Window <<<< Title: Intel® GPA System Analyzer Class: WindowsForms10.Window.8.app.0.218f99c Position: 176, 232 Size: 1100, 905 Style: 0x16CF0000 ExStyle: 0x00050100 Handle: 0x01C8073E >>>> Control <<<< Class: WindowsForms10.Window.8.app.0.218f99c Instance: 29 ClassnameNN: WindowsForms10.Window.8.app.0.218f99c29 Advanced (Class): [CLASS:WindowsForms10.Window.8.app.0.218f99c; INSTANCE:29] ID: 461078 Text: toolStrip1 Position: 232, 4 Size: 856, 27 ControlClick Coords: 675, 10 Style: 0x56000000 ExStyle: 0x00010000 Handle: 0x00070916 >>>> Mouse <<<< Position: 1087, 276 Cursor ID: 0 Color: 0xECE9D8 >>>> StatusBar <<<< >>>> Visible Text <<<< 082 : 32 : 00 : 00 Current FPS Target FPS 30 16 State Overrides Disable all overrides toolStrip1 toolStrip2 toolStrip3 toolStrip4 toolStrip5 Find: toolStrip1 Zoom - low System Overview ToolStrip ToolStrip ToolStrip ToolStrip ToolStrip chartDundas1 >>>> Hidden Text <<<< Этот же тул не распознает отдельно кнопки типа ToolStripButton. Проблема в том, что AutoIt напрямую не может работать с панелей класса ToolStrip. Проблема может быть решена следующим образом (как мне кажется): приаттачится в процессу, получить ссылку на объект класса ToolStrip и потом уже с помощью методов этого объекта нажимать на кнопки. Проблема в том, что я не знаю как это сделать и можно ли вообще это сделать. Ни один из предложенных вариантов не работает. |
Отправлено: 14:49, 16-03-2009 | #4 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать вот так можно получить хендл панели на которой распологаются кнопки...
$hHwd = ControlGetHandle('[CLASS:WindowsForms10.Window.8.app.0.218f99c]', '', '[CLASS:WindowsForms10.Window.8.app.0.218f99c; INSTANCE:29]') так пробовал, с примером выше? уже есть хэндл на эту панель, далее искать метод как тыкнуть на нужную кнопку... а этот текст прям на кнопках: toolStrip1 toolStrip2 toolStrip3 toolStrip4 toolStrip5 ... ToolStrip ToolStrip ToolStrip ToolStrip ToolStrip если прям на них, думаю тогда и непосредственный хэндл кнопки можно вытащить... |
|
------- Отправлено: 18:38, 16-03-2009 | #5 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата proxy:
Цитата proxy:
|
||
Отправлено: 11:27, 17-03-2009 | #6 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать проще говоря есть 5 штук toolStrip панелей на которых есть кнопочки.
т.е. toolStrip панели - очень похожи на toolBar, так? тогда стоит искать решение через win api. |
------- Отправлено: 15:24, 17-03-2009 | #7 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата proxy:
|
|
Отправлено: 11:06, 18-03-2009 | #8 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать это только возможно ))
но если нет возможности получить Hadle кнопки, а только целой панели... тут есть такая хитрость - к примеру как это делает _GUICtrlToolbar_ClickButton: Func _GUICtrlToolbar_ClickButton($hWnd, $iCommandID, $sButton = "left", $fMove = False, $iClicks = 1, $iSpeed = 1) If $Debug_TB Then _GUICtrlToolbar_ValidateClassName($hWnd) Local $tPoint, $tRect, $iX, $iY, $iMode, $aPos $tRect = _GUICtrlToolbar_GetButtonRectEx($hWnd, $iCommandID) $tPoint = _WinAPI_PointFromRect($tRect) $tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint) _WinAPI_GetXYFromPoint($tPoint, $iX, $iY) $iMode = Opt("MouseCoordMode", 1) If Not $fMove Then $aPos = MouseGetPos() _WinAPI_ShowCursor(False) MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) MouseMove($aPos[0], $aPos[1], 0) _WinAPI_ShowCursor(True) Else MouseClick($sButton, $iX, $iY, $iClicks, $iSpeed) EndIf Opt("MouseCoordMode", $iMode) EndFunc ;==>_GUICtrlToolbar_ClickButton на нужно колличество пиксилей по X и Y, выслать MouseClick, вернуть курсор на место и снова отобразить его.. хм... Цитата alexey_a:
как то поумномы вытаскивает Handle кнопки на панели, потому и предложил......а окозалось все так тривиально ))))) |
|
------- Отправлено: 11:35, 18-03-2009 | #9 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата proxy:
|
|
Отправлено: 18:30, 18-03-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как посмотреть html код, если нельзя кликнуть правой кнопкой мыши? | Третий | Хочу все знать | 3 | 03-10-2009 20:30 | |
<INPUT TYPE=FILE>: Как сменить надпись и шрифт на самой кнопке? | BacuJIuu KypraHoB | Вебмастеру | 10 | 05-05-2009 15:46 | |
[решено] Как кликнуть на кнопку в IE | r35TnX | AutoIt | 2 | 10-03-2009 20:23 | |
.NET - [решено] Задание картинки в ToolStripButton | Delirium | Программирование и базы данных | 7 | 03-12-2008 16:10 | |
Delphi - Delphi. Как кликнуть из программы по ссылке в открытом IE? | IkaMazini | Программирование и базы данных | 2 | 07-10-2004 12:53 |
|