|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36549 |
Профиль | Сайт | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние Текущая тема 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 | Цитировать Diamond,
Цитата:
Я попробовал убрать фокус с элемента, но это не помагает (точнее фокус не убирается, баг?)... Diamond, Очень странно, но если создать элемент после GuiSetState(), то всё работает: #include <GUIConstants.au3> Global Const $WM_KEYDOWN = 0x0101 $HWnd = GUICreate("KEYDOWN_TEST",400,300) GUIRegisterMsg($WM_KEYDOWN, "Get_KeyDown") GUISetState() $BUTTON = GUICtrlCreateButton("Button",10,10,50,20) While 1 $msg = GUIGetMsg() Switch $msg Case -3 Exit EndSwitch WEnd Func Get_KeyDown($HWnd,$Command,$wParam,$lParam) MsgBox(262144,"Код нажатой кнопки:", BitAND($wParam,0xFF)) EndFunc |
|
------- Отправлено: 18:38, 12-09-2007 | #441 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R,
Действительно, должны обрабатываться только те нажатия, которые посылаються в окно гуи. А насчёт бага, если это даже и не баг, то использование $WM_KEYDOWN полностью теряет смысл... кому оно нужно если GUI будет пустым... Кстати, я сначала тоже предположил что дело в фокусе или табуляции. Цитата:
|
|
Последний раз редактировалось Diamond, 12-09-2007 в 19:15. Отправлено: 19:00, 12-09-2007 | #442 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond,
Цитата:
P.S Может пойти попробовать репортануть о баге(?) с фокусом? |
|
------- Отправлено: 19:16, 12-09-2007 | #443 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R,
А может быть дело совсем не в фокусе...? Добавлено: ...имхо, дело не в фокусе, иначе это не работало бы ни до ни после GUISetState(). Репортануть то можно бы... правда у меня знания английского почти нулевые. |
Последний раз редактировалось Diamond, 12-09-2007 в 19:41. Отправлено: 19:24, 12-09-2007 | #444 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond,
Цитата:
Diamond, Видимо не суждено это побороть: Цитата AutoIt3 Help File:
|
||
------- Отправлено: 21:10, 12-09-2007 | #445 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R,
Цитата:
Вот ещё пример с колёсиком мыши и слайдером - наверное здесь тоже происходит "поглощение": При изменении позиции слайдера колесом мыши, GUIGetMsg() не срабатывает, а загружать основной цикл постоянными запросами тоже не хочется. Вот как раз здесь-то и пригодилась бы $WM_MOUSEWHEEL - для того чтобы получать значение слайдера при повороте колеса мыши (если он в фокусе). Но увы... именно когда он в фокусе, событие $WM_MOUSEWHEEL перестаёт обрабатываться. #include <GUIConstants.au3> $HWnd = GUICreate("MOUSEWHEEL_TEST",400,300) $BUTTON = GUICtrlCreateButton("Get Value",10,10,70,20) $SLIDER = GUICtrlCreateSlider(10,70,300,20) $INPUT = GUICtrlCreateInput("0",10,100,30,18,BitOR($ES_READONLY,$ES_CENTER)) Global Const $WM_MOUSEWHEEL = 0x020A GUIRegisterMsg($WM_MOUSEWHEEL,"Get_MouseWheel") GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case -3 Exit Case $SLIDER GUICtrlSetData($INPUT,GUICtrlRead($SLIDER)) Case $BUTTON MsgBox(0,"Текущее значение слайдера:",GUICtrlRead($SLIDER)) EndSwitch WEnd Func Get_MouseWheel($HWnd,$Command,$wParam,$lParam) Switch $wParam Case 0x00780000 ; UP Beep(100,40) Case 0xFF880000 ; DOWN Beep(80,40) EndSwitch EndFunc |
|
Отправлено: 09:57, 13-09-2007 | #446 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond,
Цитата:
#include <GuiConstants.au3> Global Const $WM_HSCROLL = 0x0114 Global Const $WM_VSCROLL = 0x0115 $Gui = GuiCreate("Slider Update Demo", 250, 200) GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL") GUIRegisterMsg($WM_VSCROLL, "WM_HVSCROLL") $Vertical_Label = GUICtrlCreateLabel("Vertical Slider Read: 0", 20, 20, 200) $Horizontal_Label = GUICtrlCreateLabel("Horizontal Slider Read: 0", 80, 120, 200) $Vertical_Slider = GUICtrlCreateSlider(20, 50, 30, 120, BitOr($GUI_SS_DEFAULT_SLIDER, $TBS_VERT)) $Horizontal_Slider = GUICtrlCreateSlider(60, 150, 160, 30) GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case -3 Exit EndSwitch WEnd Func WM_HVSCROLL($hWndGUI, $MsgID, $WParam, $LParam) Switch $MsgID Case 277 GUICtrlSetData($Vertical_Label, "Vertical Slider Read: " & GUICtrlRead($Vertical_Slider)) Case 276 GUICtrlSetData($Horizontal_Label, "Horizontal Slider Read: " & GUICtrlRead($Horizontal_Slider)) EndSwitch EndFunc Аж самому не верится, я до сих пор сам то циклом пользовался |
|
------- Отправлено: 10:18, 13-09-2007 | #447 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R,
Да ты просто фокусник! Вот так вот запросто взял и нашёл отличное решение. Спасибо! Я поправил твою функцию, это позволит обрабатывать сколько угодно слайдеров. Func WM_HVSCROLL($hWndGUI, $MsgID, $WParam, $LParam) Switch $LParam Case GUICtrlGetHandle($Vertical_Slider) GUICtrlSetData($Vertical_Label, "Vertical Slider Read: " & GUICtrlRead($Vertical_Slider)) Case GUICtrlGetHandle($Horizontal_Slider) GUICtrlSetData($Horizontal_Label, "Horizontal Slider Read: " & GUICtrlRead($Horizontal_Slider)) EndSwitch EndFunc |
Отправлено: 17:01, 13-09-2007 | #448 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond,
Цитата:
|
|
------- Отправлено: 19:46, 13-09-2007 | #449 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Написал тут утилитку для сохранения и восстановления позиции иконок рабочего стола...
Прлучилось вроде неплохо Скачать архив можно тут. |
------- Отправлено: 22:17, 13-09-2007 | #450 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|