|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты |
|
[Архив - Часть 1.3] AutoIt скрипты
|
Старожил Сообщения: 250 |
Профиль | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе 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 |
timon_90
Сообщения: n/a |
Привет народ... Я в этом деле новичок, но мне нужно сделать автоматизацию не из самых простых (как для меня) Вообщем помогите плиз чем сможете... Что собственно нужно:
Есть кейген... 1) Нужно его запустить (сделал) 2) Нажать на кнопку Generate (не получилось, но это впринципе не обязательно) 3) Скопировать текст(ключ), который он выдал (тоже непонятно) 4) Затем создать новую запись в реестре по заданному мной пути (ну в данном случае это HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\EA Games\Battlefield 2\ergc) 5) Создать там параметр со стандартным именем (строковый, REG_SZ) 6) Изменить его значение на такое - x9392тотсерийникбезчёрточек вот собственно и конец... Если никто не сможет помочь по каким либо причинам то расскажите хотя бы как делать вышеперечисленные операции Заранее спасибо !!! |
Отправлено: 12:53, 09-01-2007 | #111 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать timon_90
Для начала, прочти FAQ 2). Пункт 7 раздела Вввод данных / работа с элементами управления FAQ - ф-ция ControlClick(); 3). Ф-ция ControlGetText(); 4,5,6). Пункт 2 раздела Импорт данных из reg-файла в реестр FAQ - ф-ция RegWrite(). Заменить черточки пустотой - StringReplace("серийник с черточками","-",""). P.S. Во многих моих скриптах выполняются подобные действия - используй их в кач-ве примера (посмотри скрипт для Alcohol, FR7, SoundForge 6 и др.) |
------- Последний раз редактировалось Sanja Alone, 09-01-2007 в 15:35. Отправлено: 15:29, 09-01-2007 | #112 |
timon_90
Сообщения: n/a |
Сенк большой!) Если будет чёто не понятно то напишу)
|
Отправлено: 15:43, 09-01-2007 | #113 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Для тех кто хочет использовать трекерную музыку в проектах AutoIt.
Трекерная музыка фактически не загружает CPU и из-за её малых размеров, пользуется популярностью программистов при написании кейгенов, кряков, трайнеров, а также инсталяторов. Для проигрывания трекерных модулей в AutoIt я использую библиотеку BASSMOD.dll. BASSMOD.dll (не путать с bass.dll) можно скачать c оф. сайта http://www.un4seen.com весит 33,5 КБ Много трекерной музыки можно найти на сайте http://www.keygenmusic.net а также на http://www.websound.ru Размещаем в папку \AutoIt3\Include\ скрипт(bassmod.au3) следующего содержания: #include-once ; Поддерживает: .mod .xm .it .s3m .mtm ; P.S. Глобальные константы добавлены исключительно для удобства... ;--------------------------------- ; Music flags: Global Const $BASS_MUSIC_RAMP = 1 ; normal ramping Global Const $BASS_MUSIC_RAMPS = 2 ; sensitive ramping Global Const $BASS_MUSIC_LOOP = 4 ; loop music Global Const $BASS_MUSIC_FT2MOD = 16 ; play .MOD as FastTracker 2 does Global Const $BASS_MUSIC_PT1MOD = 32 ; play .MOD as ProTracker 1 does ;Global Const $BASS_MUSIC_POSRESET = 256 ; stop all notes when moving position Global Const $BASS_MUSIC_SURROUND = 512 ;surround sound Global Const $BASS_MUSIC_SURROUND2 = 1024 ;surround sound (mode 2) Global Const $BASS_MUSIC_STOPBACK = 2048 ;stop the music on a backwards jump effect ;Global Const $BASS_MUSIC_CALCLEN = 8192 ;calculate playback length Global Const $BASS_MUSIC_NONINTER = 16384 ; non-interpolated mixing ;--------------------------------- Func BassMod($dllPath,$sPath,$flag) If $dllPath="" Or $dllPath="-1" Then $dllPath="BASSMOD.dll" EndIf If Not FileExists($dllPath) Then If Not SysFileExist($dllPath) Then MsgBox(16,"Error","Не найден BASSMOD.dll") Exit EndIf EndIf Global $music_handle = -1 Global $BassModDll = DllOpen($dllPath) $init = DllCall($BassModDll, "int", "BASSMOD_Init", "int", -1, _ ;device "int", 44100, _ ;freq Hz "int", 0) ;flag $fName = DllStructCreate("char[255]") DllStructSetData($fName, 1, $sPath) $load = DllCall($BassModDll, "int", "BASSMOD_MusicLoad", "int", False, _ ;loading from memory "ptr", DllStructGetPtr($fName), _ ;file "int", 0, _ ;offset "int", 0, _ ;length "int", $flag) ;flag $music_handle = $load[0] $fName = 0 DllCall($BassModDll, "int:cdecl", "BASSMOD_MusicPlay", "int", $music_handle) EndFunc Func BassModClose() If IsDeclared("BassModDll") Then DllCall($BassModDll, "int:cdecl", "BASSMOD_Free", "int", $music_handle) ;clear resource DllClose($BassModDll) EndIf EndFunc ; Проверка наличия указанного файла в путях переменной %Path% Func SysFileExist($sFile) $old=@WorkingDir $array = StringSplit(EnvGet("PATH"),";") For $i=1 To $array[0] FileChangeDir($array[$i]) $get=FileExists($sFile) If $get=1 Then ExitLoop Next FileChangeDir($old) Return $get EndFunc BassMod($dllPath,$sPath,$flag) $dllPath - Путь к BASSMOD.dll (Если в качестве пути указать (-1 или "") функция поищет BASSMOD.dll в текущем директории а также в путях определённых для системной переменной %path% ) $sPath - Путь к трекерному модулю $flag - Метод обработки (см. предыдущий код: Music flags) BassModClose() - закрывает BASSMOD.dll и выгружает музыку из памяти (Эту функцию следует вызывать при выходе из GUI) Пример использования: |
Последний раз редактировалось Diamond, 17-05-2007 в 12:32. Причина: Поправил кое где тип вызова "cdecl" для autoit-v3.2.4.2 Отправлено: 17:26, 09-01-2007 | #114 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond_m
Спасибо! давно искал подобное решение - оно позволяет проигрывать мелодию в фоновом режиме, и многое другое... Примечание и вопрос: Примечание - Если путь к BASSMOD.dll не указать полный (просто "BASSMOD.dll"), то мелодия не играет. Это можно исправить изменив немного первое условие функции BassMod, и добавив после него такую строку: If StringRegExpReplace($dllPath, "^.*\\", "") = $dllPath Then $dllPath = @ScriptDir & "\" & $dllPath If $dllPath = "" Or $dllPath = -1 Then $dllPath = @ScriptDir & "\BASSMOD.dll" If StringRegExpReplace($dllPath, "^.*\\", "") = $dllPath Then $dllPath = @ScriptDir & "\" & $dllPath -Я в системной папке нашёл файл BassMod.dll, возможно ли как то использовать его? |
------- Отправлено: 00:54, 10-01-2007 | #115 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
Я считаю что лучше указывать полный путь, чтобы уж знать наверняка, что играет правильный BASSMOD.dll. P.S. Скорее всего какая нибудь программа временно извлекла BASSMOD.dll для одноразового проигрывания музыки, а в последствии не стала его удалять. Лично я считаю такое поведение некорректным для программы, поскольку это засоряет системную папку. Вот ещё вариант для скомпилированного скрипта с применением FileInstall() (по крайней мере как это вижу я) Все ресурсные файлы извлекаются в @TempDir только после запуска окна справки, а после его закрытия сразу удаляются. #include <GUIConstants.au3> #include <bassmod.au3> Opt("GUIOnEventMode", 1) $title="BASSMOD_TEST" $test=GUICreate($title,320,240) GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui") $CTRL_help = GUICtrlCreateButton ("", 260, 20, 30, 30,$BS_ICON) GUICtrlSetImage($CTRL_help,"shell32.dll",23,1) GUICtrlSetOnEvent($CTRL_help,"help") Global $HelpStart=0 Global $lib=@TempDir & "\BASSMOD.dll" Global $sound=@TempDir & "\moon trip.xm" GUISetState() While 1 Sleep(100) WEnd Func ExitGui() BassModClose() FileDelete($lib) If @GUI_WINHANDLE = $help Then GUIDelete() $HelpStart=0 Else Exit(0) EndIf EndFunc Func help() Local $size = WinGetPos("") If $HelpStart=0 Then Local $HelpInfo="На этом месте могла бы быть ваша реклама..." & @CRLF & _ "Но её здесь точно не будет!" Global $help=GUICreate("О программе...",240,180,$size[0]+40,$size[1]+40,-1,$WS_EX_TOOLWINDOW,$test) $label_help=GUICtrlCreateLabel($HelpInfo,0,0,240,180) GUICtrlSetBkColor(-1,0x000000) GUICtrlSetColor(-1,0x000000) GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui") GUISetState() $HelpStart=1 ;защита от повторного запуска help'а $color=0 Sleep(120) Do Sleep(40) $color=$color+5 $H=StringRight(Hex($color),2) GUICtrlSetColor ($label_help,"0x" & $H & $H & $H) Until $color=255 FileInstall("BASSMOD.dll",$lib,1) FileInstall("moon trip.xm",$sound,1) BASSMOD($lib,$sound,1024+4) ; Т.к. музыка загружена в память, файл модуля можно сразу же удалить FileDelete($sound) EndIf EndFunc |
||
Отправлено: 07:53, 10-01-2007 | #116 |
nadge
Сообщения: n/a |
Добрый день.
Проблема такая. Некоторые пользователи любят во время установки программ крутить и тыкать во все стороны мышью У меня довольно много программ настраиваются при помощи скриптов автоит. Пользователи от этого офигевают - мышка сама ездит Вобщем нужно на время установки запретить использование мыши и клавиатуры. Кто-нибудь делал так? Как это можно реализовать? |
Отправлено: 13:51, 10-01-2007 | #117 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать nadge все вопросы по AutoIt задавайте пожалуйста в соответствующей теме http://forum.oszone.net/thread-60616.html
Если почитать эту тему, то ответ на Ваш вопрос уже давно есть: включить |
Отправлено: 15:24, 10-01-2007 | #118 |
nadge
Сообщения: n/a |
Цитата:
Спасибо за ответ. |
|
Отправлено: 17:19, 10-01-2007 | #119 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Хотел было спросить, как переделать функцию для поиска в файле, чтобы искать можно было исключительно слово целиком (Match whole word only), но сначала решил немного поковыряться в ней (функция от Sanja Alone), и на моё же удивление, у меня получилось это осуществить...
Не знаю пока корректный ли мой способ, но вроде работает: Func _FindTextInFile($iFile, $Text, $MtchWholeWrdFlag = 0, $CaseSense = 0) If Not FileExists($iFile) Then Return -1 Dim $ret[2] Local $File = FileOpen($iFile, 0) $a = StringSplit(FileRead($File, FileGetSize($iFile)), @LF) FileClose($File) If StringIsASCII($Text) Then For $i = 1 To UBound($a, 1) - 1 If StringInStr($a[$i], $Text, $CaseSense) Then $ret[0] = $i $ret[1] = $a[$i] If $MtchWholeWrdFlag = 1 Then $StrPos = StringInStr($ret[1], $Text) If StringStripWS(StringMid($ret[1], $StrPos - 1, 1), 2) <> "" Or StringStripWS(StringMid($ret[1], $StrPos + StringLen($Text), 1), 2) <> "" Then $ret = 0 EndIf Return $ret EndIf Next Else For $i = 1 To UBound($a, 1) - 1 If StringInStr(StringLower($a[$i]), StringLower($Text)) Then $ret[0] = $i $ret[1] = $a[$i] If $MtchWholeWrdFlag = 1 Then $StrPos = StringInStr(StringLower($ret[1]), StringLower($Text)) If StringStripWS(StringMid($ret[1], $StrPos - 1, 1), 2) <> "" Or StringStripWS(StringMid($ret[1], $StrPos + StringLen($Text), 1), 2) <> "" Then $ret = 0 EndIf Return $ret EndIf Next EndIf EndFunc Немного переделал функцию, тепрь если искать кириллицу, то чувствительность к целому слову учитывается... но вот если проверять учитывая регистр, то для кириллицы не действует... также добавил в функцию 4-ты параметр, который определяет чувствительность к регистру букв. А также в начале функции поставил проверку на существование файла, если не существует, то возвращается -1. P.S. Если кто-то знает более правильный способ, или более эффективный, то буду рад узнать его |
------- Последний раз редактировалось Creat0R, 14-01-2007 в 15:33. Причина: Обновление кода Отправлено: 14:57, 14-01-2007 | #120 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|