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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

Googler


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

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


Цитата DENoszone:
эээ не пашет »
ну не знаю, у меня все пашет - проверил дома на диалапе и на работе через прокси... сверяй настройки: WinXP SP2 + IE6 + AutoIT v3.2.10.0. Чтобы разговор был предметным - отключай в первом запросе флаг невидимости и смотри в каком месте отходит от плана выполнения.

Цитата nevson:
Подскажите,пожалуйста,как средствами AutoIT можно узнать количество байт,принятых через Dial-Up соединение? »
Попробуй следующий UDF:
Код: Выделить весь код
MsgBox(0, "Статистика подключения:", "Получено "& Int(_Net_InterfaceBytes("Realtek", 1)/(1024*1024)) &" мегабайт")

; Возвращает количество байт, отправленых или принятых через сетевой интерфейс
;   $sInterfaceName - имя или часть имени сетевого интерфейса (не соединения!)
;       в свойствах соединения "подключаться через:"
;   $iFlag - что включать в расчет:
;       1 - принято,
;       2 - отправлено,
;       3 - всего.
Func _Net_InterfaceBytes($sInterfaceName, $iFlag = 3)
    Local $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2"), $iBytes=0
    Local $colItems = $objWMIService.ExecQuery("SELECT Name,BytesReceivedPersec,BytesSentPersec FROM Win32_PerfRawData_Tcpip_NetworkInterface", "WQL", 0x30)
    If Not(IsObj($colItems)) Then Return SetError(1, 0, -1) ; Ошибка WMI
    For $objItem In $colItems
        If StringInStr($objItem.Name, $sInterfaceName) Then
            If BitAND($iFlag, 1) Then $iBytes += $objItem.BytesReceivedPersec
            If BitAND($iFlag, 2) Then $iBytes += $objItem.BytesSentPersec
            Return $iBytes
        EndIf
    Next
    Return SetError(2, 0, -1) ; Ошибка: интерфейс не найден
EndFunc ; --> _Net_InterfaceBytes
Creat0R,
Цитата:
Оказывается, любая обработка строк (функции String*) будет в несколько раз замедлена если вы используете «Opt("ExpandEnvStrings", 1)» или «Opt("ExpandVarStrings", 1)» »
Ну... в принципе, логично. Т.е. нужно в UDF-ах выставлять только при необходимости и не забывать возвращать обратно...
Кстати (не могу пробиться к тебе в ПМ) если разберешься насчет BeginPaint / EndPaint маякни сюда или в ПМ... а то зацепило
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:31, 07-04-2008 | #401



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

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


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
в принципе, логично
Согласен, но об этом нужно было самому догадаться, мне пришлось распотрашить весь скрипт (более 5000 строк!), пока не дошёл до самого верху, где выставил вызов функции уже перед всеми Opt и Include, там то я и понял, что именно Opt и вызывает такую задержку. Нужно бы разработчикам на заметку кинуть мои доводы , чтобы где нибудь в справке написали об этом. Теперь я начинаю понимать Valik'а, он постоянно возмущается, мол зачем внедрили Opt изначально...

Цитата:
нужно в UDF-ах выставлять только при необходимости и не забывать возвращать обратно...
Так и сделал

Цитата:
не могу пробиться к тебе в ПМ
Немного почистил, на днях удалю все ПМ, нужно бы сначала сохранить всё, нативная функция кстати работает некорректно


Цитата:
если разберешься насчет BeginPaint / EndPaint маякни сюда или в ПМ
Хорошо, если ты не против, я на оф. форуме оставлю в моей теме твоё решение, и как бы между прочим спрошу об этой проблеме , правда если честно не успел разобраться какой именно...

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

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

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


Отправлено: 07:59, 07-04-2008 | #402


Googler


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

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


Creat0R
Цитата:
если ты не против, я на оф. форуме оставлю в моей теме твоё решение »
не против, все равно некогда - везде не поспеешь...
Цитата:
если честно не успел разобраться какой именно »
сравни обработку WM_PAINT у меня и в примере из книги для Hello1 - тот что в книге у меня не прокатил

Отправлено: 11:29, 07-04-2008 | #403


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


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

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


amel27, а что у тебя он делает???
он делает заход на нигм...прописывает там тайтл из яндекса...и и делает поиск?
где флаг не видимости?

Отправлено: 11:37, 07-04-2008 | #404


Googler


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

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


Цитата DENoszone:
что у тебя он делает??? »
так понятней?
Код: Выделить весь код
#include <IE.au3>

; Открытие окна Yandex (снял флаг невидимости и поставил ожидание загрузки - смотри справку!)
$oIE = _IECreate("http://www.yandex.ru/yandsearch?random=071215722&stype=www&randomtext=1&lr=187", 0, 1, 1, 0)
MsgBox(0, "Открытие окна Yandex", "Шаг 1 выполнен, проверьте результат!")

; Обновление окна IE
_IEAction ($oIE, "refresh")
MsgBox(0, "Обновление окна IE", "Шаг 2 выполнен, проверьте результат!")

; Читаем титул
$sTitle = _IEPropertyGet($oIE, "title")
MsgBox(0, "Читаем титул", 'Шаг 3 выполнен, титул окна: "'& $sTitle &'"')

; Выдергиваем из титула искомую фразу
$sTextFind = StringStripWS(StringReplace(_IEPropertyGet($oIE, "title"),"Яндекс:", ""), 3)
MsgBox(0, "Выдергиваем из титула искомую фразу", 'Шаг 4 выполнен, фраза: "'& $sTextFind &'"')

; Открытие окна Nigma
$oIE = _IECreate("http://nigma.ru", 0, 1, 0, 0)
WinSetState("", "", @SW_MAXIMIZE)
_IELoadWait($oIE)
MsgBox(0, "Открытие окна Nigma", "Шаг 5 выполнен, проверьте результат!")

; Вставка в элемент формы найденной фразы
$oForm = _IEFormGetCollection($oIE, 0)
$oElement = _IEFormElementGetObjByName($oForm, "s")
_IEFormElementSetValue($oElement, $sTextFind)
MsgBox(0, "Вставка в элемент формы найденной фразы", "Шаг 6 выполнен, проверьте результат!")

; Выполнение поиска
_IEFormSubmit($oForm)
MsgBox(0, "Выполнение поиска", "Шаг 7 выполнен, проверьте результат!")
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:53, 07-04-2008 | #405


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


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

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


круто.а проверку можешь сделать?
ну что бы при заходе авторизовалося...

и что бы проверялось что какое мыло написано в профеле если к примеру qwe@mail.ru то продолжать работу..если нет..то заканчивать

Отправлено: 23:46, 07-04-2008 | #406


Аватара для Creat0R

Must AutoIt


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

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


Цитата:
Нужно бы разработчикам на заметку кинуть мои доводы
Вроде кинул

Цитата:
сравни обработку WM_PAINT у меня и в примере из книги для Hello1 - тот что в книге у меня не прокатил
Сравнил, кажется понял что имеется в виду, но у меня не полчилось, пробовал примерно так:

Код: Выделить весь код
; Код оконной процедуры нашего оконного класса

Func MsgHelloWndProc($hWnd, $uMsg, $wParam, $lParam)
    Local $aRet, $stPaint, $ahDC, $tRect, $sDrawText = "Hello, World!"
    Switch $uMsg
        Case $WM_PAINT
            $stPaint = DllStructCreate("int;int;long;long;long;long;int;int;byte[32]")
            $ahDC = DllCall("user32.dll", "int", "BeginPaint", "hwnd", $hWnd, "ptr", _
                DllStructGetPtr($stPaint))

            _WinAPI_DrawText($ahDC[0], $sDrawText, $stPaint, BitOR($DT_SINGLELINE, $DT_CENTER, $DT_VCENTER))

            DllCall("user32.dll", "int", "EndPaint", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPaint))

            ; освобождаем контекст устройства
            _WinAPI_ReleaseDC($hWnd, $ahDC[0])
        Case $WM_CLOSE
            _WinAPI_DestroyWindow($hWnd)
        Case $WM_DESTROY
;           $aRet = DllCall("user32.dll", "none", "PostQuitMessage", "int", 0 )
        Case Else
            Return _WinAPI_DefWindowProc($hWnd, $uMsg, $wParam, $lParam) ; передаем "чужие" сообщение дальше на обработку
    EndSwitch
    Return 0
EndFunc ; ==> MsgHelloWndProc
На оф. форуме оставил твой пример.

amel27,
Во, так вроде работает:

Код: Выделить весь код
; Код оконной процедуры нашего оконного класса

Func MsgHelloWndProc($hWnd, $uMsg, $wParam, $lParam)
    Local $aRet, $stPaint, $ahDC, $tRect, $sDrawText = "Hello, World!"
    Switch $uMsg
        Case $WM_PAINT
            $stPaint = DllStructCreate("int;int;long;long;long;long;int;int;byte[32]")
            $ahDC = DllCall("user32.dll", "int", "BeginPaint", _
                "hwnd", $hWnd, "ptr", DllStructGetPtr($stPaint))

            $tRect = _WinAPI_GetClientRect($hWnd) ; получаем координаты клиентской области

            _WinAPI_DrawText($ahDC[0], $sDrawText, $tRect, BitOR($DT_SINGLELINE, $DT_CENTER, $DT_VCENTER))

            DllCall("user32.dll", "int", "EndPaint", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPaint))
        Case $WM_CLOSE
            _WinAPI_DestroyWindow($hWnd)
        Case $WM_DESTROY
;           $aRet = DllCall("user32.dll", "none", "PostQuitMessage", "int", 0 )
        Case Else
            Return _WinAPI_DefWindowProc($hWnd, $uMsg, $wParam, $lParam) ; передаем "чужие" сообщение дальше на обработку
    EndSwitch
    Return 0
EndFunc ; ==> MsgHelloWndProc


Ну или я неверно понял о чём вообще речь

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

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

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

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

Отправлено: 02:16, 08-04-2008 | #407


Googler


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

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


DENoszone
увы, я не телепат - продолжать работу чего?... в каком профиле?..
слишком много мест, где можно хранить мыло - свойства учетки локальной, доменной, аутглюк, бат, etc.

Creat0R
Цитата:
или я неверно понял о чём вообще речь »
не, у тебя как раз все правильно, это я накосячил в определении структуры PAINTSTRUCT (не заметил размерности [32]) так что вопрос снимается - одна голова хорошо, а две лучше... зато узнал роль BeginPaint и чем ее можно заменить.

Отправлено: 04:19, 08-04-2008 | #408


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


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

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


amel27,
http://www.nigma.ru/index_menu.php?a...&display=login - авторизация
http://www.nigma.ru/index_menu.php?a...splay=userinfo - тут в поле проверить какое мыло если к примеру qwe@mail.ru то дальше продолжить работу... если что то другое то закрывать IE и дальше не чего не выполнять

Отправлено: 09:27, 08-04-2008 | #409


Аватара для TERMINAL

Ветеран


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

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


Помогите написать условие, если сегодня суббота-тогда выдаётся сообщение (при условии что эта суббота через 2 недели-тоесть сегодня 8.04.08-нужно чтобы выдалось сообщение не 12.04.08, а 19.04.08, потом 03.05.08 и т.д.) Заранее спс !

-------
Автоматизация прежде всего....


Отправлено: 09:35, 08-04-2008 | #410



Компьютерный форум 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




 
Переход