|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты |
|
[Архив - Часть 1.3] AutoIt скрипты
|
Старожил Сообщения: 250 |
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе 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 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Вот ещё один способ, сделано через VBScript #CS тип ресурса: 0 - неизвестное устройство 1 - устройство со сменным носителем. 2 - жёсткий диск. 3 - сетевой диск. 4 - CD-ROM. 5 - RAM-диск. #CE Dim $fso, $d, $dc, $s $fso = ObjCreate("Scripting.FileSystemObject") $dc = $fso.Drives For $d In $dc If $d.DriveType = "2" Then $s = $s & $d.DriveLetter & ": " EndIf Next MsgBox(0,"",$s) |
|
Отправлено: 23:09, 16-01-2007 | #131 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать VelDmi
Цитата:
Func _MsgBox ($mainGUI, $MsgBoxTitle, $MsgBoxText, $MsgBoxType) $ret = DllCall ("user32.dll", "int", "MessageBox", _ "hwnd", $mainGUI, _ "str", $MsgBoxText , _ "str", $MsgBoxTitle, _ "int", $MsgBoxType) Return $ret [0] EndFunc В первом параметре задаётся идентификатор гуи (как выяснилось можно и от WinGetHandle), во втором заголовок, в следующем текст, и в последнем тип (иконка, кол-во кнопок и т.д.)... Вот рабочий пример с этой функцией: Opt("WinTitleMatchMode", 4) Run("notepad.exe") $NotPadTitle = "classname=Notepad" WinWait($NotPadTitle, "", 5) $hWnd = WinGetHandle($NotPadTitle) _MsgBox($hWnd, "Attached MsgBox to Notepad", "I am attached to notepad, you must close me before continue work in notepad ;-)", 64) Func _MsgBox($mainGUI, $MsgBoxTitle, $MsgBoxText, $MsgBoxType) $ret = DllCall ("user32.dll", "int", "MessageBox", _ "hwnd", $mainGUI, _ "str", $MsgBoxText , _ "str", $MsgBoxTitle, _ "int", $MsgBoxType) Return $ret [0] EndFunc P.S. Я когда то писал: Цитата:
![]() Diamond Цитата:
![]() ![]() |
|||
------- Отправлено: 04:05, 17-01-2007 | #132 |
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 08:33, 17-01-2007 | #133 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Народ!
Я повторяюсь, но очень интересует ответ на простой вопрос: у кого нибудь выполняется корректно строка $f=Run("telnet","",@SW_MAXIMIZE,3) ? У меня, если ее выполнить без последнего параметра, открывается окно telnet, в противном случае процесс закрывается через 0,5 сек после запуска. AutoIt v.3.2.0.1. |
Отправлено: 09:49, 17-01-2007 | #134 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 10:40, 17-01-2007 | #135 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Пробовал через WinApi - kernel32.dll там вроде бы должна быть нужная функция... В общем совсем запутался - ничего не получается. ![]() Если у тебя проблемы только с Dos-кодировкой, то можно побить кракозябру её же собственным оружием. |
Отправлено: 12:51, 17-01-2007 | #136 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Цитата:
![]() По поводу режима чтения из консоли (StdoutRead), если я ставлю 2 как последний параметр у команды Run, влияет ли это на то как будут выполняться команды ком. строки? т.е на что вообще это повлияет (кроме как на возможность чтения изх консоли)? |
|
------- Отправлено: 14:22, 17-01-2007 | #137 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Эта Функция в её текущем виде не предназначена для чтения из консоли, она задумана мной только для преобразования искажённого текста. Т.е я заставляю консоль испортить кирилический текст, как она это делает обычно, но только в нужную нам сторону. Но если ты хочешь использовать StdoutRead() непосредственно по назначению, т.е для чтения стандартного потока из консоли... Пример кода был взят из справки AutoIt v 3.2.2.0 $STDOUT_CHILD = 2 Необходима для получения StdoutRead() в первом цикле $STDERR_CHILD = 4 Необходима для получения StderrRead() во втором цикле Имена констант очевидно говорят об их предназначении (см. справка: StdoutRead и StderrRead) Константы влияют только на возможность чтения потока из консоли. При этом возможность сохраняется до тех пор, пока ты делаешь запросы StdoutRead(), вплоть до закрытия самой консоли. ; Demonstrates StdoutRead() #include <Constants.au3> $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) While 1 $line = StdoutRead($foo) If @error Then ExitLoop MsgBox(0, "STDOUT read:", $line) Wend While 1 $line = StderrRead($foo) If @error Then ExitLoop ;MsgBox(0, "STDERR read:", $line) Wend MsgBox(0, "Debug", "Exiting...") Исправляем этот недостаток заменой первой строки в коде: |
Отправлено: 20:48, 17-01-2007 | #138 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Как можно изменить функцию _ChooseColor(), чтобы можно было прикрепить окно выбора цвета к гуи?
Я пробовал в DllCall добавить параметр ..."hwnd", $Gui...., но функция ругается на сбой в скрипте и не хочет запускаться ![]() Diamond Цитата:
![]() |
|
------- Отправлено: 21:12, 17-01-2007 | #139 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Три способа определить - является ли файл папкой:
P.S. Возможно, для многих это не новость, и всё-таки... ;~ Путём получения атрибутов ;~ Возвращает положительное число если папка существует, иначе 0 Func FolderExist($name) $Folder=StringInStr(FileGetAttrib($name),"D") Return $Folder EndFunc ;~ С помощью файла "nul" присутствующего в каждой папке ;~ Возвращает 1 если папка существует, иначе 0 Func _FolderExist($name) $Folder=FileExists($name & "\nul") Return $Folder EndFunc ;~ С помощью функции VBScript ;~ Возвращает 1 если папка существует, иначе 0 Func VbFolderExist($name) $fso=ObjCreate("scripting.filesystemobject") $Folder=Abs($fso.FolderExists($name)) Return $Folder EndFunc Цитата:
![]() А всё-таки кракозябры были не связаны с буфером обмена или AutoIt. ![]() ![]() |
|
Отправлено: 01:14, 18-01-2007 | #140 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|