|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36567 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 22:58, 26-10-2007 | #641 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Ты приводил функцию для получения контроля по идентификатору, я вот пытаюсь сделать нечто похожее, но для Handle от контроля GUI (аутоита)... типа такого: Func _HwndToID($hwnd) Local $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hwnd) Return $iRet[0] EndFunc ![]() |
------- Отправлено: 01:59, 27-10-2007 | #642 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата Creat0R:
|
||
Отправлено: 09:22, 27-10-2007 | #643 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
![]() Я это сделал через CallBack, т.е просто тупо вызывается определённая функция каждые 100 мс., она и проверяет текст выбранного элемента (через _GuiCtrlTreeViewGetTree()), но хотелось обойтись без CallBack или другой постоянной проверкой (пусть то в цикле или в зарегистрированном сообщении через GuiRegisterMsg()) - просто есть и другие задачи для главного цикла, и не хочется нагружать его слишком много и/или вызывать несколько подобных циклов. P.S Я про событие как через GuiCtrlSetOnEvent(), не событие самой вставки ![]() |
|
------- Отправлено: 10:25, 27-10-2007 | #644 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Видно не получится при помощи API вернуть ID TreeViewItem. Наверное потому, что даже утилита AutoIt Window Info не показывает класс и instance TreeViewItem, а вот например с контроль Button идентификатор возвращается: #include <GUIConstants.au3> #include <GuiTreeView.au3> Opt("GuiOnEventMode", 1) $gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $treeView = GUICtrlCreateTreeView(20, 10, 200, 150, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_CHECKBOXES), $WS_EX_CLIENTEDGE) $all = GUICtrlCreateTreeViewItem("All", $treeView) GUICtrlCreateTreeViewItem("One", $all) $button = GUICtrlCreateButton("Insert", 240, 10, 50, 25) GUICtrlSetOnEvent(-1, "HwndToID") GUISetState() While 1 Sleep(200) WEnd Func OnExit() Exit EndFunc Func HwndToID() $insert = _GUICtrlTreeViewInsertItem($treeView, "Inserted") $handle = GUICtrlGetHandle($button) MsgBox(0, "Handle", $handle) $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $handle) MsgBox(0, "ID", $iRet[0]) EndFunc |
Отправлено: 10:36, 27-10-2007 | #645 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Вот что я имел в виду:
#include <GUIConstants.au3> #include <GuiTreeView.au3> Opt("GuiOnEventMode", 1) $Gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $TreeView = GUICtrlCreateTreeView(20, 20) $hItem = _GUICtrlTreeViewInsertItem($TreeView, "Inserted") $TV_ID = HwndToID($hItem) ; Закомментируем две предыдущие строчки, а ту то чуть ниже раскомментируем, и получем то что нужно при нажатии на пункт ; (но с ограничением в количестве создаваемых элементов) ;$TV_ID = GUICtrlCreateTreeViewItem("Inserted", $TreeView) GUICtrlSetOnEvent($TV_ID, "TV_Event") GUISetState() While 1 Sleep(100) WEnd Func TV_Event() ConsoleWrite("Ok, we have clicked tv item") EndFunc Func OnExit() Exit EndFunc Func HwndToID($hID) $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hID) Return $iRet[0] EndFunc |
------- Отправлено: 11:06, 27-10-2007 | #646 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
Отправлено: 12:10, 27-10-2007 | #647 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
|
|
------- Отправлено: 12:14, 27-10-2007 | #648 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
распознается клик на TreeView, а сам пункт "вычисляем" в функции-обработчике... ведь клик на TreeView это всегда клик на каком-то элементе? |
Отправлено: 12:21, 27-10-2007 | #649 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
![]() Но не в этом дело, ведь если поставить событие для TreeView, то оно не срабатывает как таковое: #include <GUIConstants.au3> #include <GuiTreeView.au3> Opt("GuiOnEventMode", 1) $Gui = GUICreate("Test", 300, 200) GUISetOnEvent(-3, "OnExit") $TreeView = GUICtrlCreateTreeView(20, 20) GUICtrlSetOnEvent($TreeView, "TV_Event") $hItem = _GUICtrlTreeViewInsertItem($TreeView, "Inserted") GUISetState() While 1 Sleep(100) WEnd Func TV_Event() ConsoleWrite("Ok, we have clicked tv item") EndFunc Func OnExit() Exit EndFunc |
|
------- Отправлено: 12:49, 27-10-2007 | #650 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|