|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
[Архив - Часть 1.2] AutoIt скрипты
|
Ветеран Сообщения: 565 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
------- Отправлено: 10:47, 10-02-2006 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Подскажите, как с помощью AutoIt, задать конкретному сетевому потключению общий доступ?
|
Отправлено: 16:08, 29-09-2006 | #381 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать По поводу моего предыдущего вопроса - Можно хотябы сделать так, чтобы символы _1 добовлялись вместе с другим расширением, и чтобы если уже есть такие файлы, за место _1 писать _2 и т.д?
Не могу понять почему, но вот этот пример не работает как ожидается (мной): $Number = 1 ;Вписываю все файлы с расширением *.inibak в отдельный временный файл, и ставлю самый новый файл в верх списка RunWait(@ComSpec & " /c dir /o -d /b /d *.inibak > test.tmp", "", @SW_HIDE) ;Беру число (восьмой символ справа у первой строки) с имени файла (для проверки). $NumN = StringLeft(StringRight(FileReadLine("test.txt", 1), 8), 1) FileDelete("test.txt") ;Если в файле test.tmp есть восьмой символ справа у первой строки, то переменной $Num присваевается значение ровняющееся этому символу (числу), плюс 1. If $NumN <> "" Then $Number = $NumN+1 ;Копируются все файлы с расширением *.ini в те же имена, плюс добовляется число, и расширение inibak. FileCopy("*.ini", "*_" & $Number & ".inibak") Почему это происходит, и как исправить? ------------- Есть ещё один, более выжный вопрос... Как можно послать команду в винамп (Winamp), например, на проигрывание файла - не запуск винампа с ком. строкой ровняющейся имени файла, а именно вызов команды в самом винампе? Как я понимаю, нужно использовать ControlCommand, но как узнать какую команду посылать? Я пробовал так: 4, это для того, чтобы как-бы вызвать четвёртый пункт в "BaseWindow_RootWnd1" (в Au3Info это то поле, которое видно когда проводишь мышкой по пунктам “Играть”, “Пауза”, “Стоп” и т.д. - В “Восспроизведение”). Но это не срабатывает ![]() Я бы мог конечно просто посылать нажатие клавиш, но мне нужно чтобы это происходило при свёрнутом окне винампа, а для посылки сочетании клавиш, нужно сделать WinActivate, или чтобы окно само было активным. |
------- Последний раз редактировалось Creat0R, 29-09-2006 в 21:09. Причина: Правка кода Отправлено: 21:07, 29-09-2006 | #382 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
Вот тебе код: ;путь к Winamp $WinampPath=RegRead ( 'HKEY_CURRENT_USER\Software\Winamp', '' ) If $WinampPath="" Then $WinampPath=@ProgramFilesDir & '\Winamp' ;включаем Global Hotkeys IniWrite ( $WinampPath & '\winamp.ini', 'gen_hotkeys', 'enabled', '1' ) ;запускаем Winamp Run ( $WinampPath & '\Winamp.exe' ) ;ждем загрузки процесса Winamp-а в память ProcessWait ( 'Winamp.exe' ) ;посылаем команду "Play" Send ('^!{INS}') |
||
------- Последний раз редактировалось Sanja Alone, 30-09-2006 в 05:23. Отправлено: 04:56, 30-09-2006 | #383 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Sanja Alone
Цитата:
В теории я понимаю как это сделать, но на практике, хоть убейте не получается. Вроде всё просто, уже как говорится, “рецепт написан”, но немогу сложить два плюс два. Если не трудно, покажи плиз как должен выглядеть скрипт, по вызову которого, будет делаться то что я спрашивал: Цитата:
Цитата:
![]() $WinampPath=RegRead ( 'HKEY_CURRENT_USER\Software\Winamp', '' ) If $WinampPath="" Then $WinampPath=@ProgramFilesDir & '\Winamp' ;Если Winamp небыл найден, то выводим соответствующее сообщение, и завершаем работу (скрипта) If Not FileExists($WinampPath) Then MsgBox(48, "error", "The Winamp ("& $WinampPath &") was not found") Exit EndIf ;Если Winamp не запущен, то запустим его If Not ProcessExists("Winamp.exe") Then Run($WinampPath & "\winamp.exe") ProcessWait("Winamp.exe") EndIf ;Если Global Hotkeys не установлен, то устанавливаем его через винамп If IniRead($WinampPath, 'gen_hotkeys', 'enabled', '' )=0 Then AutoItSetOption("WinTitleMatchMode", 4) WinActivate("classname=BaseWindow_RootWnd", "") WinWaitActive("classname=BaseWindow_RootWnd", "", 5) Send("^p") Send("{pgup}") Send("{down 6}") ControlCommand("classname=#32770", "", "Button2", "Check") Send("{esc}") Send("!^{INS}") ;Если уже установлен, значит просто посылаем вызов команды проигрывания Else Send("!^{INS}") EndIf |
|||
------- Отправлено: 08:38, 30-09-2006 | #384 |
![]() Старожил Сообщения: 422
|
Профиль | Отправить PM | Цитировать можно с помощью скрипта поменять имя рабочей группы и имя пользователя
мне нужно переделать ipset http://home.electronicinsanity.com/a...ipts/ipset.rar тоесть добавить ввод рабочей группы и имя комтьютера |
------- Отправлено: 13:00, 30-09-2006 | #385 |
![]() Старожил Сообщения: 422
|
Профиль | Отправить PM | Цитировать и ещё можно ли с помощью AutoIt скрипта настроить VPN соединение
|
------- Отправлено: 13:12, 30-09-2006 | #386 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
вариант рабочей функции переименования (без контроля входных параматров!) - номера ранее переименованных файлов не трогаются, новые номера считаются от максимального существующего (поэтому возможны "дыры" в нумерации). По ходу производится приведение всех номеров к единому формату по количеству знаков в номере. #include <File.au3> #include <Array.au3> #Include <String.au3> _FilesFormatRename ("c:\Test", "_") Func _FilesFormatRename ($sPath, $delim = "_") Local $i, $iMaxNum ;Считываем список файлов в массив Local $FileList = _FileListToArray($sPath, "*", 1) ;Создаем рабочий массив: Local $WorkList [$FileList[0]+1] [6] ;[][0] - имя файла без расширения ;[][1] - имя файла без расширения и номера ;[][2] - только расширение ;[][3] - старый номер ;[][4] - новый номер ;[][5] - индекс для сортировки ;Заполняем рабочий массив For $i=1 To $FileList[0] ;выделяем имя, расширение и номер $WorkList [$i][0] = StringRegExpReplace ($FileList[$i], "\.[^.]*$","") $WorkList [$i][1] = StringRegExpReplace ($WorkList [$i][0], $delim & '[0-9]*$',"") $WorkList [$i][2] = StringMid ($FileList[$i], StringLen ($WorkList [$i][0]) +2) $WorkList [$i][3] = StringMid ($WorkList [$i][0], StringLen ($WorkList [$i][1]) +2) +0 ;формируем индекс для сортировки $WorkList [$i][5] = $WorkList[$i][1] & "." & $WorkList[$i][2] & "." & StringFormat ("%." & StringLen($FileList[0]) & "d", $WorkList[$i][3]) Next ;Сортируем массив по убыванию старого номера _ArraySort ($WorkList, 1, 1, $FileList[0]+1, 6, 5) ;Основной цикл перенумерации For $i=1 To $FileList [0] ;проверка на совпадение имени If $WorkList[$i-1][1] & "." & $WorkList[$i-1][2] = $WorkList[$i][1] & "." & $WorkList[$i][2] Then ;проверка на совпадение номера If $WorkList [$i][3] = $WorkList [$i-1][3] Then ;если номера совпадают, добавляем в конец списка $iMaxNum = $iMaxNum +1 $WorkList [$i][4] = $iMaxNum Else ;если номера отличаются зачем менять? $WorkList [$i][4] = $WorkList [$i][3] EndIf Else ;максимальный номер для нового имени $iMaxNum=$WorkList [$i][3] $WorkList [$i][4] = $iMaxNum EndIf ;формируем индекс для сортировки $WorkList [$i][5] = $WorkList[$i][1] & "." & $WorkList[$i][2] & "." & StringFormat ("%." & StringLen($FileList[0]) & "d", $WorkList[$i][4]) Next ;Сортируем массив по убыванию нового номера _ArraySort ($WorkList, 1, 1, $FileList[0]+1, 6, 5) ;Подготовка к переименованию FileChangeDir ($sPath) FileSetAttrib("*", "-R") ;Собственно цикл переименования For $i=1 To $FileList [0] ;проверка на совпадение имени If ($WorkList[$i-1][1] & "." & $WorkList[$i-1][2]) <> ($WorkList[$i][1] & "." & $WorkList[$i][2]) Then $iMaxNum = $WorkList [$i][4] FileMove ($WorkList [$i][0] & "." & $WorkList [$i][2], _ $WorkList [$i][1] & $delim & StringFormat ("%." & StringLen ($iMaxNum) & "d", $WorkList [$i][4]) & "." & $WorkList [$i][2]) Next EndFunc |
Последний раз редактировалось amel27, 01-10-2006 в 16:42. Причина: правка скрипта Отправлено: 10:48, 01-10-2006 | #387 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать garbals
Цитата:
![]() |
|
Отправлено: 12:17, 01-10-2006 | #388 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Цитата:
![]() Также эта функция переименовывает всего один раз, при повторном запуске, если существуют такие-же файлы, но с последующей цифрой (на одну больше), то эти файлы не переименовываются в существующие, но на одну цифру выше... Попробую перефразировать задачу: В папке c:\test, есть 3 файла (кроме прочих) - myfile.dat, hisfile.dat, aourfile.dat - после запуска скрипта, нужно чтобы эти файлы (именно с таким расширением), переименовались в такие имена - myfile_1.dat, hisfile_1.dat, aourfile_1.dat. Далее, при повторном запуске скрипта, если уже обнаружены такие файлы (myfile_1.dat, hisfile_1.dat, aourfile_1.dat), то именно их трогать ненужно, а нужно все остальные (с таким же расширением, и с таким же началом - до символа _), переименовать в такие файлы - myfile_2.dat, hisfile_2.dat, aourfile_2.dat, а те которые не совпадают в начале имени (до символа _), нужно переименовывать как и в первый раз (добовляя _1). Точно такой способ, реализован в утилите 7-zip, там при расспаковке файлов (через командную строку), можно указать ключ, который позволит именно этим способом переименовывать существующие файлы. |
|
------- Отправлено: 13:27, 01-10-2006 | #389 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
![]() Цитата:
Цитата:
Цитата:
![]() FYI: скрипт подправил, теперь кол-во знаков в номере определяется автоматом |
||||
Отправлено: 17:06, 01-10-2006 | #390 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|