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

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

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

Старожил


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

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


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





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


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

Помогите пожалуйста. Нужен маленький скриптик для решения некоторых рутинных задачь.
Вот что нужно сделать последовательно:

1) в папке DIR1 находим и удаляем файлы в названии которых присутствует text_1
2) в папке DIR2 находим xxx.sif и удаляем строки, в которых присутствует text_1
3) в папке DIR3 находим xxx.inf и добавляем в его секцию [XXX] несколько строчкек (text_2, text_3, ..., text_n)
4) в папке DIR4 находим yyy.inf ищем в его секции [YYY] text_4 и заменяем его на text_5
5) сохраняем все изменения и выводим отчёт о проделанной работе :-)

Заранее благодарен.

Отправлено: 05:05, 03-12-2006

 

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


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

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


День добрый,
интересует следующий вопрос:
Можно ли запускать IT скрипт с какимилибо параметрами, например мне нужен скрипт который бы выводи мне 2 значения из командной строки
т.е. скрипт я запускаю
Код: Выделить весь код
RUN.exe параметр1 параметр2
и в результате скрипт выдал мне мессаге в котором мне былибы выданы 1 и 2 параметры
заранее спасибо

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



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

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


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


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

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


Вообщем такой трабл, при установке Agnitum Outpost Firewall выдает 2 окна с ошибками Microsoft Visual C++ Runtime Library. Я написал в скрипте функцию отлова этих окон с ошибками, но когда закрывается первое окно с ошибкой установка стопорится на Мастере Настройки, т.е дальше только вручную нажимать кнопки приходится. Посмотрите скрипт, мож че подскажите, или из-за чего такие ошибки вылетают, вроде библиотеки Си стоят.
СИНИМ выделено то, что добавил я, все остальное исходный скрипт от Sanja Alone
Код: Выделить весь код
#cs
----------------------
Приложение: Agnitum Outpost
На какой(их) версии(ях) тестировалось: 3.5 (ru); 3.51 (ru)

Автор скрипта: Sanja Alone (http://forum.oszone.net/member.php?userid=28800)
----------------------
#ce
;предотвращение возможности множественного запуска скрипта
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
;блокируем мышь и клаву
;AutoItSetOption("TrayIconHide", 1)
;Отображать текущую строку сценария с помощью индикатора системной панели в режиме отладки.
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("SendKeyDelay", 15)
If ProcessExists ( "ps.exe" )<>0 Then
     ProcessClose ( "ps.exe" )
     ProcessWaitClose ( "ps.exe" )
EndIf
;нельзя блокировать при находящемся в памяти Punto Switcher-е - не будет работать установка
;блокируем мышь и клаву
;If @OSType="WIN32_NT" Then BlockInput ( 1 )
#cs
----------------------
объявление переменных
----------------------
$file - установочный файл
$serial - если имеете рабочий ключ, то введите его сюда
$programgroup - в какую программную группу положить ярлыки программы
$delfromautorun - удалить Outpost из автозапуска (1 - удалить (по ум.), любое другое значение - не удалять)

----------------------
#ce
Global $file='OutpostProInstall.exe', $serial='XXXXX', $programgroup='Agnitum Outpost Firewall', $delfromautorun=1
AdlibEnable("wfp",1000)
If FileExists ( @ProgramFilesDir & '\Agnitum\Outpost Firewall\outpost.exe' ) Then
     MsgBox (64, 'Сообщение', 'Agnitum Outpost Firewall уже установлен', 5)
     Exit
   Else
     Run ( @ScriptDir & '\' & $file & ' /LANG="ru" /NOAUTOUPDATE /NORESTART /VERYSILENT' )
EndIf
WinWait ( 'Мастер настройки' )
WinActivate ( 'Мастер настройки' )
WinWaitActive ( 'Мастер настройки' )
Send ( '{ENTER}' )
While ControlCommand ( 'Мастер настройки', '', '< &Назад', 'IsEnabled', '')=0
WEnd
WinActivate ( 'Мастер настройки' )
WinWaitActive ( 'Мастер настройки' )
;Далее
Send ( '{ENTER}' )
WinWait ( 'Ручная настройка' )
WinActivate ( 'Ручная настройка' )
WinWaitActive ( 'Ручная настройка' )
;Готово
Send ( '{ENTER}' )
#cs
----------------------
Крякнутые dll-ки и настройки программы поместите в самораспаковывающиеся архивы
	settings.exe - настройки
	opst_ui.exe - крякнутые dll-ки (если нет рабочего серийника)

команды SFX-сценария (для обоих архивов, winrar):
	
	Path=Agnitum\Outpost Firewall
	SavePath
	Silent=1
	Overwrite=1

----------------------
#ce

If WinWait("Microsoft Visual C++ Runtime Library") Then
WinActivate("Microsoft Visual C++ Runtime Library")
WinWaitActive("Microsoft Visual C++ Runtime Library")
Send("{ENTER}")
EndIf 

If FileExists ( @ScriptDir & '\settings.exe' ) Then RunWait ( @ScriptDir & '\settings.exe' )
;регистрация
If $serial<>'' Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Agnitum\Outpost Firewall","Key","REG_SZ",$serial)
ElseIf FileExists ( @ScriptDir & '\opst_ui.exe' ) Then
RunWait ( @ScriptDir & '\opst_ui.exe' )
EndIf


;перенос ярлыков
DirCopy ( @ProgramsCommonDir & '\Agnitum\Outpost Firewall', @ProgramsCommonDir & '\' & $programgroup, 1 )
DirRemove ( @ProgramsCommonDir & '\Agnitum', 1 )

;отключить Автообновление
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Agnitum\Outpost Firewall\General","AutoUpdate","REG_DWORD",0x00000000)

;убрать Аутпост из автозапуска (если это было задано выше)
If $delfromautorun=1 Then
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Outpost Firewall")
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "OutpostFeedBack")
EndIf

AdlibDisable()

;BlockInput ( 0 )

Exit

Func wfp()
If WinWait("Microsoft Visual C++ Runtime Library","") Then
WinActivate("Microsoft Visual C++ Runtime Library")
WinWaitActive("Microsoft Visual C++ Runtime Library")
Send("{ENTER}")
EndIf 
EndFunc

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


Googler


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

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


Dicken
Цитата:
Можно ли запускать IT скрипт с какимилибо параметрами
посмотри тут: http://forum.oszone.net/post-461784-212.html
... а также поищи в справке по ключу $CmdLine.

Отправлено: 09:27, 13-02-2007 | #193


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


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

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


В стандартных примерах нашёл скрипт sysinfo. Так вот, можно ли сделать, чтобы этот скрипт вместо временной папки или папки Windows(допустим) выводил пароль и имя для каждого пользователя?
Кстати, у кого-нибудь есль стандартные модули с русскими комментариями?

Отправлено: 17:37, 14-02-2007 | #194


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


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

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


Нашёл недостаток в InputBox(), проверка на IsNumber() всегда возвращает строчную переменную, даже если вводимые данные были представлены в цифре.
Предлагаю два варианта решения:
Код: Выделить весь код
;~ Эта функция работает только с обычными целыми числами
;~ числа типа: 0x5, 4.03 или 00001 не подойдут

Проверка переменной на пренадлежность к числам:
Func _IsNumber($var)
$check=Number($var)
If String($check)=String($var) Then
	Return 1
Else
	Return 0
EndIf
EndFunc
;-------------------------------------
;~ А это первое что мне пришло в голову (банальный перебор)

Проверка переменной на принадлежность к целым числам:
Func _IsInt($var)
If $var= "" Then
	Return -1
EndIf
$len=StringLen($var)
$check=0
For $j=48 To 57
	For $i=1 To $len
		If StringMid($var,$i,1)=Chr($j) Then
			$check=$check+1
		EndIf
	Next
Next
If $check=$len Then 
	Return 1
Else
	Return 0
EndIf
EndFunc

Отправлено: 18:01, 14-02-2007 | #195


Googler


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

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


Diamond
Это не недостаток, а издержки типа данных Variant - кстати, аналогично и в Visual Basic... Преобразование типа происходит непосредственно перед выполнением операций с данными - например, при попытке провести арифметические операции со строковой переменной... поэтому иногда вместо преобразования проще прибавить к переменной "0". То, что InputBox() возвращает текстовую строку вполне логично. ИМХО текстовый ввод проще контролировать регулярными выражениями, тем более что этот способ универсален и подходит для любых входных данных:
Код: Выделить весь код
Func _IsStringNumber ($sVar)
    Return StringRegExp ($sVar, '^ *([0-9]+\.{0,1}[0-9]*|0x[0-9]+) *$')
EndFunc

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

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

Отправлено: 04:32, 15-02-2007 | #196


Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
текстовый ввод проще контролировать регулярными выражениями
Гинеально! блин, как научиться понимать столь сложные RegExp'ресовые выражения? - я немало часов потратил прочитывая справку на эту тему, но так ничего и не дошло ....




Немного в другую сторону...


У меня есть пару вопросов касающихся сети:

1) Функция InetGet при закачке файлов, обходит прокси? или таже UDF-функция для _InetGetSource тоже не работает с прокси?
Мне нужно каким то образом, получать данные с сети (будь то закачка файла или получение исходного кода страницы), вне зависимости от того, подключён ли компьютер к сети через прокси или напрямую. Но желательно каким то хитрым образом обходить прокси, не выключая его (т.е не заметно для юзера) - это вообще возможно?

2) В сети у меня лежит файл с расширением *.js (хотя не очень важно расширение), какое самое быстрое средство для получения с него данных (для его чтения)? неужели _InetGetSource() это самое быстрое(?) средство?

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

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

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


Отправлено: 08:54, 15-02-2007 | #197


Googler


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

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


Creat0R
Цитата:
желательно каким то хитрым образом обходить прокси, не выключая его
если откроешь исходник _InetGetSource(), то увидишь вызов функции API-функции InternetOpen из библиотеки wininet.dll, так вот второй параметр (после имени инициатора) отвечает за тип подключения (в функции жестко пробит 0), возможные параметры:
Цитата:
0 - INTERNET_OPEN_TYPE_PRECONFIG - Запрашивает прокси или прямую конфигурацию из реестра.
1 - INTERNET_OPEN_TYPE_DIRECT - Разрешает имена всех хостов локально.
3 - INTERNET_OPEN_TYPE_PROXY - Направляет запрос прокси-серверу, в случае если не предоставлен лист обходов прокси-серверов и имени прокси-сервера нет списке прокси-серверов, которые можно обойти. В этом случае функция использует INTERNET_OPEN_TYPE_DIRECT.
4 - INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY - Запрашивает проки или прямую конфигурацию из реестра и предотвращает использование стартовых Microsoft JScript или Internet Setup (INS) файлов.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:13, 15-02-2007 | #198


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


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

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


amel27
Цитата:
текстовый ввод проще контролировать регулярными выражениями
Или функция не работает только у меня, или я неправильно понял её предназначение. При любом раскладе возвращает 0. Почему так?

Отправлено: 16:05, 15-02-2007 | #199


Googler


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

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


Diamond
Обнови версию AutoIT - это новая фича, еще не устаканилась...

Отправлено: 01:53, 16-02-2007 | #200



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход