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

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

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

(*.*)


Administrator


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


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

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

 

Аватара для Creat0R

Must AutoIt


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

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


gregaz
Цитата:
Никак не могу найти функцию переименования файлов
FileMove("C:\file.txt", "C:\file_1.txt")

также и с папками...
Но учти, в версии 3.2.2.0 и ранее, есть баг - если пытаться переименовать файл в то же имя но с разным регистром, файл удаляется, к примеру вот так:

Код: Выделить весь код
FileMove("C:\test.txt", "C:\teST.txt", 1)
Файл C:\test.txt будет удалён.
Я дал знать разработчикам об этом баге, и в версиях выше чем 3.2.2.0 они вроде это поправили.

Цитата:
.Как задействовать поиск в Help
Речь про обычный файл справки к AutoIt? там есть вкладка Поиск, в неё вводишь слово-запрос, и нажимаешь Enter, если есть соответствующие разделы, они будут отображены .

amel27
Цитата:
не совсем понятно как работает _InetGetSpeed()
Вот она:

Код: Выделить весь код
Func _InetGetSpeed($Sleep=1000)
    Local $BytesCheckBefore = @InetGetBytesRead
    Sleep($Sleep)
    Local $BytesCheckAfter = @InetGetBytesRead
    Local $RetSpeedByBytes = $BytesCheckAfter - $BytesCheckBefore
    If $RetSpeedByBytes < 0 Then $RetSpeedByBytes = 0
    Return $RetSpeedByBytes
EndFunc
Цитата:
Для расчета нужно просто взять разницу в значениях @InetGetBytesRead (закачанный размер) и разделить на соответствующую разницу значений TimerDiff()
А можно пример плиз, а то я не уверен что понял как засекать и сравнивать .

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

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

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


Отправлено: 19:36, 11-06-2007 | #11



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

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


Googler


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

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


Creat0R
Цитата:
можно пример
Код: Выделить весь код
If Not(InetGet("http://downloadmirror.intel.com/6667/eng/ISM556_Build7.exe", "xpSP2_ru.exe", 1, 1)) Then MsgBox (16,'','')
$begin = TimerInit()

While @InetGetActive
    Sleep(250)
    $AverageSpeed = (@InetGetBytesRead / TimerDiff($begin))
    TrayTip("Downloading", "Average Speed = " & Int($AverageSpeed) & " Kbyte/sec", 10, 16)
Wend
Цитата:
Вот она
Имхо текущую скорость удобней измерять через AdLib():
Код: Выделить весь код
Global $InetSpeed = 0, $InetGetBytesRead = 0, $InetTimeStamp = 0
AdlibEnable ("_InetGetSpeed", 1000)

InetGet("http://downloadmirror.intel.com/6667/eng/ISM556_Build7.exe", "test.exe", 1, 1)
While @InetGetActive
    Sleep(250)
    TrayTip("Downloading", "Speed = " & Int($InetSpeed) & " Kbyte/sec", 10, 16)
Wend

Func _InetGetSpeed()
    If @InetGetActive Then
        If @InetGetBytesRead <> -1 Then
            Local $ticks = TimerDiff($InetTimeStamp)
            If  $ticks>0 Then $InetSpeed = (@InetGetBytesRead-$InetGetBytesRead) / $ticks
        EndIf
        $InetGetBytesRead = @InetGetBytesRead
        $InetTimeStamp = TimerInit()
    Else
        $InetGetBytesRead = 0
        $InetSpeed = 0
    EndIf
EndFunc

Последний раз редактировалось amel27, 13-06-2007 в 03:11.

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

Отправлено: 09:38, 12-06-2007 | #12


Аватара для Creat0R

Must AutoIt


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

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


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

Код: Выделить весь код
Global $InetSpeed = 0, $InetGetBytesRead = 0, $InetTimeStamp = 0, $begin = TimerInit()

InetGet("http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.2.4.4-setup.exe", "test.exe", 1, 1)

While @InetGetActive
    Sleep(200)
    $Bytes = @InetGetBytesRead
    $InetSpeed = _InetGetSpeed($Bytes)
    $AverageSpeed = $Bytes*1000 / TimerDiff($begin)
    TrayTip("Downloading", "Speed = " & Round($InetSpeed/1024, 1), 10, 16)
Wend

MsgBox(0, "", "Avarage speed is: " & Round($AverageSpeed/1024, 1))

Func _InetGetSpeed($Bytes)
    If @InetGetActive Then
        If $InetTimeStamp Then
            Local $Ticks = TimerDiff($InetTimeStamp)
            If  $Ticks > 0 Then $InetSpeed = ($Bytes-$InetGetBytesRead)*1000 / $Ticks
        EndIf
        $InetGetBytesRead = $Bytes
        $InetTimeStamp = TimerInit()
    Else
        $InetTimeStamp = 0
        $InetGetBytesRead = 0
        $InetSpeed = 0
    EndIf
    Return $InetSpeed
EndFunc
Остаётся один главный вопрос - Насколько это точный подсчёт? и можно ли “доверять” этим данным?

Спасибо за примеры, вроде всё работает как надо .

P.S
А среднюю скорость мне нужно не в цикле отображать, а подсчитать её для конечного вывода (чтобы показать юзеру с какой скоростью (средней) закаивался файл за весь промежуток закачки).


Diamond
По теме словарей (Dictionary):
http://www.autoitscript.com/forum/in...6&#entry352256

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

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

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


Отправлено: 03:02, 13-06-2007 | #13


Googler


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

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


Creat0R
Цитата:
почему бы не поместить функцию в цикл, и передавать ей как параметр чтение байтов, и возвращать с неё данные о скорости?
Из соображений эффективности... Смущает Sleep() внутри функции - обычно время контролирует один (основной цикл) и не предполагается, что какая-то функция будет стопорить скрипт...

З.Ы. скрипт привел к работоспособному виду.

Отправлено: 03:24, 13-06-2007 | #14


Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
скрипт привел к работоспособному виду.
А что если в Adlib я поставлю не 1000, а 500, чтобы данные обновлялись более часто? если это нарушает достоверность данных, то как сделать отображение чаще чем раз в секунду, но при этом сохранить достоверность (надёжность) данных о скорости?

P.S
А по поводу средней скорости.... на выходе из цикла переменная $AverageSpeed будет содержать общую среднюю скорость закачки на промежуток времени всей закачки, или она будет содержать последнюю засеченную среднюю скорость (на выходе из цикла)?

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

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

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


Отправлено: 04:51, 13-06-2007 | #15


Googler


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

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


Creat0R
Цитата:
а что если в скрипте уже используется Adlib для других целей?
использовать самопальный AdLib тем более, что у него нет ограничений на количество запусков...
Цитата:
на выходе из цикла переменная $AverageSpeed будет содержать общую среднюю скорость закачки на промежуток времени всей закачки, или она будет содержать последнюю засеченную среднюю скорость (на выходе из цикла)?
среднюю по закаченной части файла, соответственно на выходе - по всему файлу... вообще если нужен только итог, то достаточно по завершению разделить FileGetSize() на TimerDiff().
Цитата:
А что если в Adlib я поставлю не 1000, а 500, чтобы данные обновлялись более часто? если это нарушает достоверность данных, то как сделать отображение чаще чем раз в секунду, но при этом сохранить достоверность (надёжность) данных о скорости?
придется хранить все предыдущие значения @InetGetBytesRead, например в массиве... Вот измененный вариант, где скорость измеряется за последние 500*10 = 5 сек закачки:
Код: Выделить весь код
Global $AdLibMS=500, $InetBytesBack = 10
Global $InetSpeed = 0, $InetTimeStamp
Global $InetBytesRead[$InetBytesBack+1]

AdlibEnable ("_InetGetSpeed", $AdLibMS)
InetGet("http://downloadmirror.intel.com/6667/eng/ISM556_Build7.exe", "test.exe", 1, 1)

While @InetGetActive
    Sleep(100)
    $bytes = StringFormat('Downloads: %d Kb',@InetGetBytesRead/1000)
    $speed = StringFormat('Speed: %d Kb/Sec',$InetSpeed)
    TrayTip('', $bytes & @CRLF & $speed, 10, 16)
Wend

Func _InetGetSpeed()
    Local $nb ; Значение массива по текущему индексу до его обновления (цикл назад)
    If @InetGetActive Then
        ; Если первый раз, то инициализируем массив
        If $InetBytesRead[0]=0 Then $InetBytesRead[0] = 1
        ; Ищем следущую ячейку массива
        $InetBytesRead[0]+=1
        If $InetBytesRead[0] > $InetBytesBack Then $InetBytesRead[0]=1
        ; Сохраняем значение массива в переменной (сколько было байт 1 цикл назад)
        $nb = $InetBytesRead[$InetBytesRead[0]]
        ; Записываем новое значение загруженных байт
        $InetBytesRead[$InetBytesRead[0]] = @InetGetBytesRead
        ; Выбираем формулу в зависимости от того проходим первый цикл или уже нет
        If $nb >0 Then
            $InetSpeed = ($InetBytesRead[$InetBytesRead[0]]-$nb)/($AdLibMS * $InetBytesBack)
        Else
            $InetSpeed = $InetBytesRead[$InetBytesRead[0]]/($AdLibMS * $InetBytesRead[0])
        EndIf
    Else
        ; Если нет закачки затираем массив и сбрасываем параметры
        If $InetBytesRead[0]>0 Then Global $InetBytesRead[$InetBytesBack+1]
        $InetSpeed = 0
    EndIf
EndFunc

Последний раз редактировалось amel27, 13-06-2007 в 12:39.

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

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


Аватара для schel4ok

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


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

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


Написал скрипты установки MathCAD 2001 и AutoCAD 2006 Mechanical.

В MathCAD 2001 после установки при первом запуске программы производится какая-то настройка. При этом необходимо не вынимать установочный диск. Грубо говоря, тыкаешь ярлык к mathcad.exe и запускается прогресс бар msi-настройщика длящийся около минуты. У ярлыка не указаны никакие ключи командной строки (точнее поле объект в свойствах ярлыка вообще неактивно и недоступно для просмотра).
Поэтому простой запуск
Run (@Programfilesdir & 'Mathsoft\Mathcad 2001 professional\mathcad.exe')
Processwait('процесс')
ProcessWaitClose('процесс')
ProcessClose ('mathcad.exe')

не помогает! При этом первой строчкой запускается сам Маткад и никакой настройки не производится. Настройка происходит только при запуске через ярлык. Как узнать что именно при этом происходит?

В AutoCAD 2006 Mechanical после установки при первом запуске запускается процесс регистрации. Только строчка Run (@Programfilesdir & '...\...\Acad.exe') тоже не помогает. При отработке этой строчки из скрипта, выскакивает диалоговое окно сообщающее о том, что система не может найти како-то .dll. Если же сразу после этого запустить AutoCAD вручную - то все нормально!
Помогите!

Отправлено: 14:34, 13-06-2007 | #17


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


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

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


Внедрённый HTML объект
Анимированный gif, звук (в бесконечном цикле!), плюс эффект с текстом.
З.Ы. Пытался с помощью дополнительных стилей убрать рамку у объекта , но нашёл лишь несколько новых рамок... и всё же есть одна небольшая хитрость:
В коде есть четыре закомментированных параметра, если их задействовать - то рамка исчезнет.
Код: Выделить весь код
$sound=@ScriptDir & "\MUSIC9.MID"
$image=@ScriptDir & "\butterfly.gif"

Opt("GUIOnEventMode",1)
#include <GUIConstants.au3>
$hGUI=GUICreate("Embedded Web control Test", 442, 300)
GUISetOnEvent($GUI_EVENT_CLOSE,"Quit")
$oIE = ObjCreate("Shell.Explorer.2")
$GUIActiveX = GUICtrlCreateObj($oIE, 1, 1, 440, 62)
$oIE.navigate ("about:blank")
While $oIE.busy
    Sleep(200)
WEnd
$oIE.document.write('<bgsound loop="-1"  src="' & $sound & '">')
$oIE.document.write('<marquee behavior="alternate" direction="right"><font size="+3" color="#ff00ff"><b>Web control Test</b></font></marquee>')
$oIE.refresh

;~ $oIE.height=66
;~ $oIE.width=444
;~ $oIE.left=-4
;~ $oIE.top=-4

$oIE.document.body.scroll = "no"
$oIE.document.body.bgcolor = "buttonface"
$oIE.document.body.leftmargin = "2"
$oIE.document.body.rightmargin = "2"
$oIE.document.body.topmargin= "10"
$oIE.document.body.background = $image
GUICtrlSetStyle($GUIActiveX,-1,0x1999)
GUICtrlSetState($GUIActiveX,$GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1
	Sleep(1000)
WEnd

Func Quit()
	Exit
EndFunc
Creat0R
Цитата:
По теме словарей (Dictionary)
Эх, мне бы этот пример немного пораньше... и я сэкономил бы пару часов на его изучении.
В любом случае, большое спасибо!

Последний раз редактировалось Diamond, 19-06-2007 в 20:38. Причина: добавил в коде кое что...


Отправлено: 18:33, 13-06-2007 | #18


Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
вообще если нужен только итог, то достаточно по завершению разделить FileGetSize() на TimerDiff()
Гинеально!!! оказалось намного проще! спасибо.

Цитата:
придется хранить все предыдущие значения @InetGetBytesRead, например в массиве
А что если объявлять локально переменные которые не изменяются нигде, это повлияет на результаты?

Вот как я сделал:

Код: Выделить весь код
Global $InetBytesRead[10+1]

InetGet("http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.2.4.4-setup.exe", "test.exe", 1, 1)

$begin = TimerInit()

While @InetGetActive
    Sleep(100)
    $InetSpeed = _InetGetSpeed(100)
    $bytes = StringFormat('Downloads: %d Kb',@InetGetBytesRead/1024)
    $speed = StringFormat('Speed: %d Kb/Sec',$InetSpeed)
    TrayTip('', $bytes & @CRLF & $speed, 10, 16)
Wend

MsgBox (64,'', "Download is finished with Avarage Speed of: " & Int(FileGetSize("test.exe")/TimerDiff($begin)) & " kb/s")

Func _InetGetSpeed($AdLibMS=500)
    Local $nb ; Значение массива по текущему индексу до его обновления (цикл назад)
    Local $InetSpeed = 0, $InetBytesBack = 10
    If @InetGetActive Then
        ; Если первый раз, то инициализируем массив
        If $InetBytesRead[0]=0 Then $InetBytesRead[0] = 1
        ; Ищем следущую ячейку массива
        $InetBytesRead[0]+=1
        If $InetBytesRead[0] > $InetBytesBack Then $InetBytesRead[0]=1
        ; Сохраняем значение массива в переменной (сколько было байт 1 цикл назад)
        $nb = $InetBytesRead[$InetBytesRead[0]]
        ; Записываем новое значение загруженных байт
        $InetBytesRead[$InetBytesRead[0]] = @InetGetBytesRead
        ; Выбираем формулу в зависимости от того проходим первый цикл или уже нет
        If $nb >0 Then
            $InetSpeed = ($InetBytesRead[$InetBytesRead[0]]-$nb)/($AdLibMS * $InetBytesBack)
        Else
            $InetSpeed = $InetBytesRead[$InetBytesRead[0]]/($AdLibMS * $InetBytesRead[0])
        EndIf
    Else
        ; Если нет закачки затираем массив и сбрасываем параметры
        If $InetBytesRead[0]>0 Then Global $InetBytesRead[$InetBytesBack+1]
        $InetSpeed = 0
    EndIf
    Return $InetSpeed
EndFunc
Ну не очень мне нравится идея с Adlib в этом случае

Кстати, у тебя в примере чтобы получить кб, байты деляться на 1000:

Код: Выделить весь код
@InetGetBytesRead/1000
Разве не на 1024 нужно делить?

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

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

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


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


Googler


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

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


Creat0R
Цитата:
А что если объявлять локально переменные которые не изменяются нигде, это повлияет на результаты?
не повлияет, только значение $InetBytesBack придется вбивать дважды - при определении массива и в функции, а $InetSpeed в твоем случае и вовсе не нужна - можно просто заменить "$InetSpeed = <формула>" на "Return <формула>"
Цитата:
Ну не очень мне нравится идея с Adlib в этом случае
Свои предпочтения нужно обосновывать.
AdLib хорош тем, что он не зависит от скрипта (есть соединение или нет) и временной интервал всегда одинаков. В твоем варианте интервал между "временнЫми засечками" на самом деле >100 ровно на столько, сколько потребуется скрипту на выполнение команд после Sleep(100). Обычно это неcущественно, но в общем случае он может быть любым (особенно если где-нибудь есть еще один Sleep() ), соответственно показания скорости будут неверными. Для сохранения точности придется в дополнение к @InetGetBytesRead сохранять показания TimerInit(), хотя интервал замера уже перестанет быть фиксированным... Кроме того инициализацию массива придется возложить на основной скрипт, так как функция не знает старая это закачка или новая.
Код: Выделить весь код
Global $InetBytesRead

InetGet("http://downloadmirror.intel.com/6667/eng/ISM556_Build7.exe", "test.exe", 1, 1)
_GetProgressSpeed ($InetBytesRead, @InetGetBytesRead, 100)

While @InetGetActive
    Sleep(100)
    $bytes = StringFormat('Downloads: %d Kb',@InetGetBytesRead/1024)
    $speed = StringFormat('Speed: %d Kb/Sec',_GetProgressSpeed ($InetBytesRead, @InetGetBytesRead) *0.9765625)
    TrayTip('', $bytes & @CRLF & $speed, 10, 16)
Wend

Func _GetProgressSpeed (ByRef $arrValueBack, $intValue = -1, $intCountBack = 0)
    Local $nb, $nt, $bound = UBound($arrValueBack,1)
    If $intCountBack<=0 Then $intCountBack = $bound-1 ; Восстанавливаем актуальное значение глубины отката
    ; Блок инициализации массива и контроля ошибок
    If $intCountBack<=0 Then Return SetError(1, 0, -1) ; Ошибка размерности 1
    If $intValue<0 Then
        Dim $arrValueBack [$intCountBack+1][2] = [[1,TimerInit()]]
        Return 0
    ElseIf $intCountBack<>$bound-1 Then
        Dim $arrValueBack [$intCountBack+1][2] = [[1,TimerInit()],[$intValue,TimerInit()]]
        Return 0
    Else
        If UBound($arrValueBack,2)<2 Then Return SetError(2, 0, -1) ; Ошибка размерности 2
        If ($arrValueBack[0][0]<=0) Or ($arrValueBack[0][0]>$intCountBack) Then  Return SetError(3, 0, -1) ; Ошибка целостности
    EndIf
    ; Ищем следующую ячейку массива
    $arrValueBack[0][0]+=1
    If $arrValueBack[0][0] > $intCountBack Then $arrValueBack[0][0]=1
    ; Сохраняем значения массива в переменных (цикл назад)
    $nb = $arrValueBack[$arrValueBack[0][0]][0]
    $tb = $arrValueBack[$arrValueBack[0][0]][1]
    ; Записываем новые значения загруженных байт и время
    $arrValueBack[$arrValueBack[0][0]][0] = $intValue
    $arrValueBack[$arrValueBack[0][0]][1] = TimerInit()
    ; Выбираем формулу в зависимости от того проходим первый цикл или нет
    If $nb =0 Then Return $arrValueBack[$arrValueBack[0][0]][0] / TimerDiff($arrValueBack[0][1])
    Return ($arrValueBack[$arrValueBack[0][0]][0]-$nb) / TimerDiff($tb)
EndFunc
Цитата:
Разве не на 1024 нужно делить?
с учетом вышеизложенного это мелочи
...кстати, множитель 0.9765625 как раз отвечает за перевод исходной величины Byte/ms в KByte/sec

Последний раз редактировалось amel27, 15-06-2007 в 06:02.

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

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



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




 
Переход