Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


Сообщения: 36561
Благодарности: 6694


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 
D_Master


Сообщения: n/a

Профиль | Цитировать


Maza Faka, спасибо, но exe-шники, к сожалению, оказались версии 3.2.12.1. Придётся обращаться к автору и просить исходники

Отправлено: 17:25, 01-11-2008 | #1051



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
иногда скрипт требует динамичного создания и освобождения хендлов »
если несложно, можно пример?.. или линк

Отправлено: 10:08, 02-11-2008 | #1052


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Цитата amel27:
можно пример?.. или линк »
Ну к примеру мой GUICtrlSetOnHover UDF. Там при каждом вызове функции GUICtrlSetOnHover() проверяется не установлен ли уже CallBack, также при вызове GUICtrlUnSetOnHover() высвобождается CallBack и таймер (если это последний элемент в массиве). Вот там могут возникнуть проблемы. Также юзер может вызвать функцию OnAutoItExit() предварительно, таким образом будет высвобождён CallBack (и если проверки не будет, то повторный вызов приведёт к краху скрипта).

P.S
Это только один пример, есть ещё пару (точно где не помню), где дела обстоят ещё хуже.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:27, 02-11-2008 | #1053


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


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


При использовании
AutoItSetOption("TrayIconDebug", 1)
на ПК все норм работает а на буке нет строки... в чем может быть проблема ?

Отправлено: 18:40, 02-11-2008 | #1054


Аватара для Maza Faka

Ветеран


Сообщения: 604
Благодарности: 133

Профиль | Отправить PM | Цитировать


Babullika
Какая ОС на ПК и буке?

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 06:20, 03-11-2008 | #1055


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


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


на ПК XP Pro sp3 ( Zver CD ) , на буке XP Pro SP3 из MicroXP v0.8 , видимо из образа микро xp убрали какие то необходимые библиотеки или типа того

Отправлено: 09:57, 03-11-2008 | #1056


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R

Во-первых, в твоем примере нет динамического создания/удаления описателей - тут речь всего о двух хэндлах, а точнее - об одной группе связанных описателей: (CallBack + Timer), которую можно обозвать одним "составным описателем". Во-вторых, я не вижу проблемы как таковой - определи пару UDF: одна создает описатель, другая - закрывает и пусть пользователь сам решает куда их втыкать.

Могу предложить свой вариант системы UDF, причем без создания глобальных данных:

_GUICtrlOnHoverCallOpen() - открывает хэндлы, инициализирует и возвращает массив - управляющую структуру, в которой сохраняются хэндлы и рабочие данные, пример заполнения:

$aControl [0] [0] - кол-во элементов массива (обрабатываемых контролов)
$aControl [0] [1] - описатель CallBack
$aControl [0] [2] - описатель Timer

$aControl [$i] [0] - ControlID
$aControl [$i] [1] - HoverFuncName
$aControl [$i] [2] - HoverFuncNameLeave

_GUICtrlOnHoverCallClose(ByRef $aControl) - закрывает все описатели и уничтожает управляющий массив ($aControl =0)

_GUICtrlOnHoverCallAdd(ByRef $aControl, $CtrlID, $HoverFuncName = "", $HoverFuncNameLeave = "") - регистрирует контрол для обработки

_GUICtrlOnHoverCallDelete(ByRef $aControl, $CtrlID) - снимает контрол с обработки


Цитата Creat0R:
есть ещё пару (точно где не помню), где дела обстоят ещё хуже »
вспоминай


ADD: может я ошибаюсь, но имхо для штатного GUI не нужен никакой таймер - достаточно поставить обработчик сообщения WM_MOUSEMOVE ...совсем другое дело обработка контролов чужих окон, но там одного ControlID недостаточно, нужно еще идентифицировать главное окно или процесс... а может просто передавать hWnd контрола?.. впрочем, это уже будет совсем другая функция

Последний раз редактировалось amel27, 03-11-2008 в 12:19.


Отправлено: 10:11, 03-11-2008 | #1057


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Цитата amel27:
в твоем примере нет динамического создания/удаления описателей »
Есть, ты видимо не ту версию скачал (нужно ту что для 3.2.10.0) - Ведь если вызывать функции постоянно это уже и будет динамический...

Например:

Код: Выделить весь код
#include <GuiConstants.au3>
#include <GUICtrlSetOnHover_UDF_For 3.2.10.0.au3>

$GUI = GUICreate("Test Script", 300, 200)

$Button = GUICtrlCreateButton("Button", 20, 40, 60, 20)

For $i = 1 To 10
    If Mod($i, 2) = 0 Then
        _GUICtrlSetOnHover($Button, "Hover_Func", "Leave_Hover_Func")
    Else
        _GUICtrlUnSetOnHover($Button)
    EndIf
Next

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
В этом случае, если не проверять If $pTimerProc <> 0 в UDF, то скрипт вылетает.

Цитата amel27:
не вижу проблемы как таковой »
Я проблему то решил для себя, но по большому проблема есть, и заключается она в том, что Аутоит "вылетает" когда от него это не ожидается.

Цитата amel27:
Могу предложить свой вариант системы UDF, причем без создания глобальных данных »
Хм, у тебя получается сделать без глобальных переменных? А как быть с LAST_HOVERED_ELEMENT? т.е нужно чтобы функция не вызывалась всё время, а только при навидении в первый раз.

Цитата amel27:
для штатного GUI не нужен никакой таймер - достаточно поставить обработчик сообщения WM_MOUSEMOVE »
Имхо, этого не будет достаточно если нужно чтобы обработка OnHover была и при не активном GUI, а также в последних версиях UDF добавлена возможность OnClick ($sPrimaryDownFuncName, $sPrimaryUpFuncName), там явно MouseMove не поможет.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:38, 03-11-2008 | #1058


Пользователь


Сообщения: 81
Благодарности: 10

Профиль | Отправить PM | Цитировать


Как создать Shortcut c параметром - "Setup.exe" -uninstall? Функция FileCreateShortcut создает в кавычках, а нужен параметр без кавычек. Или только батник писать и на него Shortcut?

Отправлено: 13:54, 03-11-2008 | #1059


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


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день
Дайте совет пожалусто
Юзаю такую щтуку
FileCopy("C:\Temp2\*.txt", "C:\Temp3\" & Random(-10, 10, 1) & "*.txt", 9)
получается что все файлы копируются с одинаковыми префиксами , а как сделать чтобы у каждого файла префикс разный был ?

Отправлено: 14:33, 03-11-2008 | #1060



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 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




 
Переход