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

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

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


Administrator


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


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

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


Изменения
Автор: Vadikan
Дата: 27-01-2008
Внимание!
Тема переведена в архивное состояние







(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.


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

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



Данная тема предназначена для общих вопросов по 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 | Цитировать


schel4ok
Цитата:
первой строчкой запускается сам Маткад и никакой настройки не производится
попробуй вместо Run() использовать ShellExecute() не для EXE, а для ярлыка (*.LNK), поищи его в папке Рабочего стола....

Отправлено: 11:10, 14-06-2007 | #21



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

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


Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
Свои предпочтения нужно обосновывать.
Они обосновываются тем, что я хотел создать библиотеку для _InetGet...(), а помещать в библиотеку единственный ресурс Adlib не очень то уж и хорошая идея, поэтому и писал, что возможно эта функция будет вызываться позже (из родительского скрипта в котором используется библиотека).

Цитата:
на самом деле >100 ровно на столько, сколько потребуется скрипту на выполнение команд после Sleep(100)
Согласен, но в моём случае, не думаю что команды TrayTip (хотя использую ProgressSet() ), или String...() могут занять много времени....

Цитата:
кстати, множитель 0.9765625 как раз отвечает за перевод исходной величины Byte/ms в KByte/sec
Т.е это считается меркой соотношения между bytes/ms и kb/s? а для mb/m (просто интересно), нужно ещё раз умножать на это же значение?

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

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

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


Отправлено: 11:20, 14-06-2007 | #22


Googler


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

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


Creat0R
Переделал последний вариант скрипта - добавил обработку ошибок и упростил использование параметров. Теперь он может использоваться для измерения не только скорости закачки, но и скорости прогресса любой величины (>0), например обработанных файлов, произведенных кликов мышки и т.д.
Цитата:
не думаю что команды TrayTip (хотя использую ProgressSet() ), или String...() могут занять много времени
Имхо не стоит загадывать, особенно если включать функцию в библиотеку... и если вспомнить, что скрипт может стопориться даже без вызова Sleep().
Цитата:
это считается меркой соотношения между bytes/ms и kb/s? а для mb/m (просто интересно), нужно ещё раз умножать на это же значение?
Byte/ms -> KByte/s : 1000/1024 = 0.9765625
KByte/s -> MByte/min : 60/1024 = 0.05859375
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:59, 15-06-2007 | #23


Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
добавил обработку ошибок
Имхо, возвращаемое значение не должно быть -1 в подобной функции, чтобы это не отобразилось случайно в TrayTip (или любом другом “отображающем устройстве” ), мне кажется присваивать последовательно значения @error будет достаточно, а возвращать в таком случае 0.


Цитата:
Теперь он может использоваться для измерения не только скорости закачки, но и скорости прогресса любой величины (>0), например обработанных файлов, произведенных кликов мышки и т.д.
не совсем понял, а как это засикается скорость обработанных файлов, или что ещё более удивитеьнее (для меня), как это работает на “произведенных кликов мышки”?

И ещё такой вопрос: Функция для подсчёта скорости, в оригинале возвращает байты/мс, или байты/с ? если первое, то как поправить чтобы возвращались именно байты в секунду, это нужно для ещё одной функции подсчёта... функция подсчитывает приблизительно оставшиеся время до закачки (в секундах) :

Код: Выделить весь код
;Функция возвращает приблизительно оставшееся время в секундах (за счёт вычесления из общего размера файла и деления на скорость скачивания).
Func _InetGetRemained($Bytes, $TotalBytesSize, $SpeedByBytes)
    Local $RemainedSecs = ($TotalBytesSize - $Bytes) / $SpeedByBytes
    If $RemainedSecs < 0 Then $RemainedSecs = 0
    Return $RemainedSecs
EndFunc

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

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

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


Отправлено: 18:21, 15-06-2007 | #24


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


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

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


Здравствуйте!

подскажите пожалуйста как получить файл с и-нета а затем его запустить(скачать и после того как он на компе запустить его)
делаю вот так:

InetGet("http://the-file.com/file.exe", "file.exe", 1, 1)
Sleep(30000)
Global $file = 'file.exe'
RunWait($file)

но мне почемуто кажется что функция Sleep(30000) только останавливает скрипт а сним и получение файла с и-нета, или я не прав?

приведите пример пожалуйста как правельно это сделать..

Отправлено: 00:15, 16-06-2007 | #25


Аватара для Creat0R

Must AutoIt


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

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


GTeam
Цитата:
как получить файл с и-нета а затем его запустить
Нужно поставить закачку не в фоновой режим, а чтобы функция возвращала по завершению закачки...

Цитата:
делаю вот так:
В этом случае закачка поставлена именно в фоновой режим, за это отвечает последний параметр.

Вот пример закачки и по завершению запуска закаченной программы (если она закачалась успешно):

Код: Выделить весь код
;Обьявляем переменную для имени файла (желательно и весь путь)
Global $file = 'file.exe'

;Ставим закачку в ждущем режиме
$Ret = InetGet("http://the-file.com/file.exe", $file, 1, 0)

;Если удачно закачался файл, то запускаем его
If $Ret = 1 Then RunWait($file)

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

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

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


Отправлено: 01:29, 16-06-2007 | #26


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


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

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


спасибо огромное, очень помог!
еще один вопрос , может ли AutoItSetOption("TrayIconHide", 1) повлиять как то на работу скрипта?

Отправлено: 02:34, 16-06-2007 | #27


Аватара для Creat0R

Must AutoIt


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

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


GTeam
Цитата:
может ли AutoItSetOption("TrayIconHide", 1) повлиять как то на работу скрипта?
В каком смысле?

оно влияет только на то, что иконка в трее не будет отображаться, это удобно если нужно в работе скрипта скрывать/показывать иконку в области уведомления (трей), если нужно чтобы иконка вовсе не показывалась (никогда), то в начале скрипта достаточно поставить директиву #NoTrayIcon, это кстати, в отличие от Opt("TrayIconHide", 1), позволяет не показывать иконку при запуске скрипта, т.е икона не появится на мгновение как это происходит при использовании Opt("TrayIconHide", 1) .

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

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

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:57, 16-06-2007 | #28


Googler


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

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


Creat0R
Цитата:
Имхо, возвращаемое значение не должно быть -1 в подобной функции, чтобы это не отобразилось случайно
если проверять на ошибки, то случайностей не будет
Цитата:
как это засикается скорость обработанных файлов
Код: Выделить весь код
#include <Constants.au3>
Global $ProcessCount, $ProcessLines=0

$pid = Run (@ComSpec & ' /C DIR /B /S *.*', 'C:\', @SW_HIDE, $STDOUT_CHILD)
_GetProgressSpeed ($ProcessCount, -1, 100)

While 1
    Sleep(100)
    $text = StdoutRead($pid)
    If @error Then ExitLoop
    $count = StringLen($text)-StringLen(StringStripCR($text))
    $ProcessLines+= $count
    $files = StringFormat('Processed %i files', $ProcessLines)
    $speed = StringFormat('Speed: %i Files/Sec',_GetProgressSpeed($ProcessCount, $ProcessLines)*1000)
    TrayTip('', $files & @CRLF & $speed, 10, 16)
    ConsoleWrite ($text)
Wend
Цитата:
или что ещё более удивитеьнее (для меня), как это работает на “произведенных кликов мышки”?
Код: Выделить весь код
#include <GUIConstants.au3>
Global $ProcessCount, $ProcessClicks=0
Opt("GUIOnEventMode", 1)

GUICreate("My GUI")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Quit")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_AddClick")

_GetProgressSpeed ($ProcessCount, -1, 50)
GUISetState (@SW_SHOW)

While 1
    Sleep(100)
    $clicks = StringFormat('Processed %i clicks', $ProcessClicks)
    $speed = StringFormat('Speed: %.2f Clicks/Sec',_GetProgressSpeed($ProcessCount, $ProcessClicks)*1000)
    TrayTip('', $clicks & @CRLF & $speed, 10, 16)
Wend

Func _AddClick()
    $ProcessClicks+=1
EndFunc

Func _Quit()
    Exit
EndFunc
Цитата:
Функция для подсчёта скорости, в оригинале возвращает байты/мс, или байты/с ?
как и AutoIT - миллисекунды
Цитата:
как поправить чтобы возвращались именно байты в секунду, это нужно для ещё одной функции подсчёта... функция подсчитывает приблизительно оставшиеся время до закачки (в секундах)
Код: Выделить весь код
Func _InetGetRemained($Bytes, $TotalBytesSize, $SpeedByBytes)
    Local $RemainedSecs = ($TotalBytesSize - $Bytes) / ($SpeedByBytes * 1000)
    If $RemainedSecs < 0 Then $RemainedSecs = 0
    Return $RemainedSecs
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:23, 16-06-2007 | #29


Аватара для gregaz

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


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

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


Creat0R. Спасибо за советы !
Есть еще один вопрос :
Как правильно организовать архивирование файлов Winrar_ом ?
Имеется Файл , полученный после работы функции FileOpenDialog, есть его массив-форма,обработанная определенным обазом.
Задача :архивировать выбранные и обработанные файлы
Попытка занести в окно Winrara требуемый путь к папке (имеющий и русские названия папок) выдают абракадабру
Поочередное переключение раскладок клавы не дает стабильного результата.
Возможно есть простой путь ?

Отправлено: 18:57, 16-06-2007 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 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




 
Переход