Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
HORRIBLE
12-05-2008, 20:25
Всем привет.
Как можно заблокировать авторан который запускается с флешок, скриптом?
Vikkywulf
13-05-2008, 00:34
Где бы таки укачать русскую справку к autoit, по ссылке в шапке, задолбался уже скачивать: 404: The page/file you requested could not be found.
Konstantin_555
13-05-2008, 00:44
Где бы таки укачать русскую справку к autoit, по ссылке в шапке, задолбался уже скачивать: 404: The page/file you requested could not be found. »
Попробуй здесь взять: http://www.autoitscript.com/AutoIt/Docs/index.html
Мастера покажите простенький пример скрипта который удаляет файл из которого был запущен.
Вопрос: Возможно это реализовать с помощью Ai или .bat или .cmd создавать ?
HORRIBLE, заблокировать авторан который запускается с флешок »
Насколько я знаю за автозапуск отвечает файл «Autorun.inf» в корне диска, может удалять его?
*OM*, простенький пример скрипта который удаляет файл из которого был запущен. »
Самоуничтожение? :)
Opt("OnExitFunc", "_SelfDestroy")
FileCopy(@ScriptFullPath, @ScriptFullPath & ".bak", 1)
MsgBox(16, "Thats it!", "I am gona kill my self now... goodby :`(", 4)
Func _SelfDestroy()
If Not @Compiled Then Return FileDelete(@ScriptFullPath)
Run(@ComSpec & ' /c ping -n 2 localhost > nul & del /q /f "' & FileGetShortName(@ScriptFullPath) & '"', '', @SW_HIDE)
EndFunc
Самоуничтожение? »
Ну да путь самурая :ninja: к смерти.. =)
Это для Uninstall буду использовать.
DENoszone
13-05-2008, 12:21
Можете написать скрипт:
1. Заходит на какой то сайт (есть алгоритм)
2. потом на сайте делает поиск мыла ну вид *@*.ru *@*.com *@*.ua и так далее и запихивает в файлы адреса (.VCF .CSV .TXT .DOC .XLS и т.п.) какой то один из них, файлы делает по 100кб.
3. дальше делает переходы по страницам и пункт 2 повторяется.
4. если нету внешних ссылок то заходит на другой сайт (алгоритм есть)
в ие это все
ну понятно все там закрывает когда проходит страницу
alex888500
14-05-2008, 07:12
Написал скрипт, никак не могу сделать перебор пользователей.
Может кто-нибудь подправить.
Run("********")
WinWaitActive("***************") ;Активное окно программы
Sleep(3000)
AutoItSetOption ( "MouseCoordMode", 2 ) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2 )
While True
HotKeySet("{F11}", "Terminate") ;Остановка скрипта
$doubled = Mous($1)
Send $1("lexx124") ;Пользователь 1
Send $2("lexx130") ;Пользователь 2
Func Terminate() ;Остановка скрипта
Exit 0 ;Остановка скрипта
EndFunc ;Остановка скрипта
WEnd
; <<<----------функция Смены пользователя--------->>>
Func Mouse($1)
AutoItSetOption ( "MouseCoordMode", 2 ) ;Кнопка Start
MouseClick ( 'left', 265, 160, 1 )
Sleep(360000) ;Ожидание 6 минут
AutoItSetOption ( "MouseCoordMode", 0 ) ;Кнопка Stop
MouseClick ( 'left', 358, 160, 1 )
Sleep(1500)
AutoItSetOption ( "MouseCoordMode", 2 ) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2 )
$1 = $1 + 1
Return $1
EndFunc
Здраствуйте.
Как в Excele зделать, допустим в ячеке B1 находится цифра 3 тогда в ячеике B5 троику заменить на значек (+)
на картинке я примерно нарисовал как надо, от куда и куда :-))
Спасибо.
http://forum.oszone.net/attachment.php?attachmentid=11310&stc=1&d=1210755511
ну и далее
alex888500
14-05-2008, 13:43
Проще всего используя функции логики самого Exel'я, почитай справку, там все есть.
Как разбить число допустим 1367 на 1 3 6 7 и присвоить каждую переменной
Drsmog, разбить число допустим 1367 на 1 3 6 7 и присвоить каждую переменной
Хм, каждому числу создать переменную? так можно:
$iNumber = 1367
$aNumbersArr = StringSplit($iNumber, "")
For $i = 1 To UBound($aNumbersArr)-1
Assign("iNumber_" & $i, $aNumbersArr[$i])
Next
MsgBox(0, "", $iNumber_1 & " " & $iNumber_2 & " " & $iNumber_3 & " " & $iNumber_4)
All
Посмотрите, плиз, тему Трей начал прыгать (http://forum.oszone.net/thread-106994.html) - это ваша специализация :)
Библиотека автоматизации Winamp плеером! (http://creator-lab.ucoz.ru/load/3-1-0-43)
Не требует установки внешних модулей к Winamp, функции построены на основе SDK (http://www.winamp.com/development/sdk) с оф. сайта (http://www.winamp.com) разработчиков Winamp'а.
http://creator-lab.ucoz.ru/Images/I_Love_AutoIt.gif
DENoszone
Можете написать скрипт »есть два вопроса:
1. Для чего нужен скрипт? (есть сомнения)
2. Как вы собираетесь ограничивать геометрический рост кол-ва обрабатываемых линков?.. К примеру, в телепорте есть два механизма: ограничение на глубину вложенных ссылок, либо только ссылками на исходный сайт... В противном случае перебор может никогда не закончиться, при этом бесконтрольная загрузка всех подряд URL-ов (в основном ненадежных сайтов) отрицательно скажется на здоровье ослика IE.
alex888500
Написал скрипт, никак не могу сделать перебор пользователей »слишком мало инфы - подробней объясните суть проблемы и предполагаемый алгоритм работы скрипта, желательно также "снять" характеристики обрабатываемых окон и контролов через "AutoIT Window Info"
Drsmog, Как в Excele зделать, допустим в ячеке B1 находится цифра 3 тогда в ячеике B5 троику заменить на значек (+) »для начала установите библиотеку работы с Excel и посмотрите примеры:
Yet Another -- ExcelCOM UDF, Proceeding by Community-Established UDF Standards (http://www.autoitscript.com/forum/index.php?showtopic=34302)
DENoszone
15-05-2008, 08:36
1. Для чего нужен скрипт? (есть сомнения)
2. Как вы собираетесь ограничивать геометрический рост кол-ва обрабатываемых линков?.. К примеру, в телепорте есть два механизма: ограничение на глубину вложенных ссылок, либо только ссылками на исходный сайт... В противном случае перебор может никогда не закончиться, при этом бесконтрольная загрузка всех подряд URL-ов (в основном ненадежных сайтов) отрицательно скажется на здоровье ослика IE.
1. создания базы для отсылки с одного сайта приглашений.
2. ну первое огранчение это наверное домены сайтов. ua com ru ну наверное это хоть как то снизит вероятность попадание на злобный сайт=) блин..даже не знаю =( надо подумать...как вы считаете нужным?
alex888500
15-05-2008, 08:52
Скрипт который я написал для одного пользователя, выполняется бесконечно пока не нажата F11, работает нормально:
Run("*********")
Sleep(3000)
HotKeySet("{F11}", "Terminate") ;Остановка скрипта
While True ;Бесконечная обработка скрипта
WinWaitActive("**********") ;Активное окно программы
AutoItSetOption ( "MouseCoordMode", 2 ) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2, 2)
Send ("lexx127") ;Пользователь 1
AutoItSetOption ( "MouseCoordMode", 2 ) ;Кнопка Start
MouseClick ( 'left', 265, 160, 1, 2)
Sleep(10000) ;Ожидание 6 минут
AutoItSetOption ( "MouseCoordMode", 2 ) ;Кнопка Stop
MouseClick ( 'left', 358, 160, 1 , 2)
WEnd
Func Terminate()
Exit 0
EndFunc
Но проблема состоит в том что пользователей должно быть 50 человек, и просто копировать все операции скрипта с мышкой + второй логин, тупо. В справке нашел как можно сделать функцию Func, в функцию хочу поместить однотипные операции (клики мышкой), плюс алгоритм смены логина пользователя:
Run("*********")
Sleep(3000)
WinWaitActive("**********") ;Активное окно программы
AutoItSetOption ( "MouseCoordMode", 2 ) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2, 2)
HotKeySet("{F11}", "Terminate") ;Остановка скрипта
While True ;Бесконечная обработка скрипта
$doubled = Mous($1)
Send $1("lexx127") ;Пользователь 1
Send $2("den") ;Пользователь 2
Send $3("vovan") ;Пользователь 3
WEnd
Func Terminate()
Exit 0
EndFunc
; <<<----------функция Смены пользователя--------->>>
Func Mouse($1)
AutoItSetOption ( "MouseCoordMode", 2) ;Кнопка Start
MouseClick ( 'left', 265, 160, 1, 2)
Sleep(360000) ;Ожидание 6 минут
AutoItSetOption ( "MouseCoordMode", 2) ;Кнопка Stop
MouseClick ( 'left', 358, 160, 1, 2)
Sleep(1500)
AutoItSetOption ( "MouseCoordMode", 2) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2, 2)
$1 = $1 + 1
Return $1
EndFunc
вот тут я и запарил :cry:
Maza Faka
15-05-2008, 10:43
alex888500
Можно создать массив с логинами пользователей и передавать их в функцию, что -то вроде этого:
Run("*********")
Sleep(3000)
WinWaitActive("**********") ;Активное окно программы
AutoItSetOption ( "MouseCoordMode", 2 ) ;Клик на поле ввода Логина
MouseClick ( 'left', 93, 30, 2, 2)
HotKeySet("{F11}", "Terminate") ;Остановка скрипта
Global $aUser[4] = [3, "lexx127", "den", "vovan"]
While True ;Бесконечная обработка скрипта
For $i = 1 To $aUser[0]
Mouse($aUser[$i])
Next
Sleep(50)
WEnd
Func Terminate()
Exit 0
EndFunc
; <<<----------функция Смены пользователя--------->>>
Func Mouse($sUser)
MouseClick ( 'left', 265, 160, 1, 2)
Sleep(360000) ;Ожидание 6 минут
MouseClick ( 'left', 358, 160, 1, 2)
Sleep(1500)
MouseClick ( 'left', 93, 30, 2, 2)
EndFunc
TERMINAL
15-05-2008, 10:54
Правда, есть еще проблема - финишное окно... »
ну и что там за проблема?
Можно создать массив с логинами пользователей и передавать их в функцию »я так понял alex888500 еще не освоился с функциями и массивами, поэтому мой вариант проще будет:_Login("lexx127")
_Login("den")
_Login("vovan")
Func _Login($sUser)
Local $bak = AutoItSetOption ( "MouseCoordMode", 2)
WinWaitActive("**********") ; Активное окно программы
MouseClick ('left', 93, 30, 2, 2) ; Клик на поле ввода Логина
Send ($sUser) ; Пользователь
MouseClick ('left', 265, 160, 1, 2) ; Кнопка Start
Sleep(10000) ; Ожидание 10 сек
MouseClick ('left', 358, 160, 1 , 2) ; Кнопка Stop
AutoItSetOption ("MouseCoordMode", $bak)
EndFunc
alex888500
Все-таки попробуте запустить "AutoIt Window Info" и выяснить ID элементов окна - кнопок и Edit-боксов (типа "Edit1", "Button1"), тогда можно будет пробовать работать с элементами напрямую по ID и не зависеть от координат окна.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.