|
Компьютерный форум 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 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Diamond
Цитата:
; Пример использования функции _DisplaySetRes (1024, 768, 32, 75) ; Функция изменения видеорежима (для одного монитора) Func _DisplaySetRes ($width, $height, $depth, $freq) Local $dev = DllStructCreate ("byte[32];int[10];byte[32];int[6]") ; Возвращаем текущее состояние устройства Local $ret = DLLCall ('user32.dll', 'int', 'EnumDisplaySettings', _ 'ptr' , 0, _ 'long', 0, _ 'ptr' , DllStructGetPtr ($dev) ) If @error Then Return 0 If $ret[0]=0 Then Return 0 ; Правим нужные элементы структуры DllStructSetData ($dev, 4, $depth, 1) DllStructSetData ($dev, 4, $width, 2) DllStructSetData ($dev, 4, $height, 3) DllStructSetData ($dev, 4, $freq, 5) ; Проверяем корректность параметров $ret = DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', _ 'ptr', DllStructGetPtr ($dev), _ 'int', 2 ) If @error Then Return 0 ; Если все ОК - применяем новые параметры If $ret[0] =0 Then $ret = DllCall ('user32.dll', 'int', 'ChangeDisplaySettings', _ 'ptr', DllStructGetPtr ($dev), _ 'int', 1 ) If @error Then Return 0 Return 1 Else Return -1 EndIf EndFunc |
|
Отправлено: 11:35, 06-02-2007 | #181 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 12:13, 06-02-2007 | #182 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать amel27
По поводу частоты обновления Отлично! Всё работает! :UP: Если честно, я и не надеялся что вообще кто нибудь ответит, иначе задал бы этот вопрос ещё месяц назад. Большое спасибо! P.S. Была проблема с видеокартой, в некоторых играх частота сбрасывалась с 85 Гц. на 60 Гц. Перепробовал уже (наверное) все известные утилиты и ни одна из них не помогла. Теперь проблема решилась. Ещё раз спасибо! |
Отправлено: 18:29, 06-02-2007 | #183 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Есть фирменная YAMAHA'овская программа для конвертирования звуковых WAV-файлов
в формат MMF (используется в сотовых телефонах Samsung, LG, Pantech, etc...) Называется WSC-MA2, сайт http://smaf-yamaha.com/ Это, похоже, единственая программа, которая может конвертировать WAV->MMF. Но она не работает из командной строки, у нее нет меню, она не работат в пакетном режиме. Для того чтоб сконвертировать WAV в MMF надо схватить WAV-файл мышкой, перетащить и бросить его на маленькое, красивенькое окошко этой программы. Можно ли с помощью AutoIt проделать такую операцию? То есть "взять некий WAV-файл мышкой" и "кинуть его на окошко этой проги" (в перспективе взять по-очереди в цикле все файлы с расширением WAV и покидать их на окошко программы) Реализуемо ли это в рамках Auto-It? или вообще как-нибудь, кроме как вручную. спасибо. |
Отправлено: 01:19, 12-02-2007 | #184 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать i_mihal
обычно перетаскивание можно заменить на копировать/вставить через буфер обмена... |
Отправлено: 06:36, 12-02-2007 | #185 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 07:05, 12-02-2007 | #186 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Написал давно желанную функцию, но она работает как бы наполовину - она должна заменять стандартную функцию FileSelectFolder, но проблема в том, что у меня не получается - А) либо создать все вкладки (в TreeView) для всех существующих папок (это также займёт кучу времени на их генерацию), Б) либо создавать их “находу” (т.е в момент вызова/раскрытия той или иной вкладки) - в принципе, проблема со вторым вариантом такая - нужно узнать как очистить одну выделенную вкладку от её подвкладок (не удаляя её саму).
Для чего нужна такая функция? во-первых для того чтобы можно было прикреплять это окно к другому приложению (или к родительскому гуи) - эта одна из основных причин (даже самая) - далее можно также используя подобную функцию, просто создавать это окно с разными размерами, с разными кнопками и возвращаемой информацией, также будет возможность задать этому окну атрибут “поверх всех окон” и т.д и т.п... Вот в принципе сам скрипт с примером: #include <GUIConstants.au3> #include <GUITreeView.au3> #include <File.au3> $Parent = GUICreate("test", 200, 200) $Select = GUICtrlCreateButton("Select", 50, 50) GUISetState() While 1 $Msg = GUIGetMsg() If $Msg = -3 Then ExitLoop If $Msg = $Select Then GUISetState(@SW_DISABLE) $Path = _FileSelectFolder("Select Folder", "Choose needed Path:", 300, 300, 1, $Parent) If Not @error Then MsgBox(64, "Path", "The selected path is: <" & $Path & ">") GUISetState(@SW_RESTORE) GUISetState(@SW_ENABLE) EndIf WEnd GUIDelete() Func _FileSelectFolder($Title, $Dialog_Text, $Width=300, $Heght=300, $OnTop=0, $Hwnd="") Opt("GuiOnEventMode", 1) Global $IsExit = 0, $IsCancel = 0, $PathInput, $MainTreeViewID, $TOPMOST If $OnTop = 1 Then $OnTop = 8 GUICreate($Title, $Width, $Heght, -1, -1, $WS_SYSMENU+$WS_CAPTION+$WS_SIZEBOX, $WS_EX_CONTEXTHELP+$OnTop, $Hwnd) GUISetOnEvent(-3, "Cancel") GUICtrlCreateLabel($Dialog_Text, 10, 5) $ButtonOK = GUICtrlCreateButton("OK", $Width-180, $Heght-25, 70, 20) GUICtrlSetOnEvent(-1, "OK") $ButtonCancel = GUICtrlCreateButton("Cancel", $Width-80, $Heght-25, 70, 20) GUICtrlSetOnEvent(-1, "Cancel") $PathInput = GUICtrlCreateInput("", 10, $Heght-50, $Width-20) $MainTreeViewID = GUICtrlCreateTreeView(10, 30, $Width-20, $Heght-90, BitOr($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE) GUISetState() $DrivesArr = _DrivesListToArray("all") If IsArray($DrivesArr) Then Dim $MainDriveID[$DrivesArr[0]+1], $CurrentIcon, $CurrentIcID For $i = 1 To $DrivesArr[0] $CurrentDrive = $DrivesArr[$i] If $CurrentDrive <> "a:" And $CurrentDrive <> "b:" Then $CurrentIcon = $CurrentDrive & "\" & IniRead($CurrentDrive & "\Autorun.inf", "Autorun", "Icon", "") $CurrentIcID = 0 EndIf If Not FileExists($CurrentIcon) Then $CurrentIcon = "shell32.dll" $CurrentIcID = 8 EndIf $MainDriveID[$i] = GUICtrlCreateTreeViewItem(StringUpper($CurrentDrive) & "\", $MainTreeViewID) GUICtrlSetOnEvent(-1, "GetText") If $CurrentDrive = "a:" Or $CurrentDrive = "b:" Then GUICtrlSetImage(-1, "shell32.dll", 6, 0) ElseIf DriveGetType($CurrentDrive) = "CDROM" Then GUICtrlSetImage(-1, "shell32.dll", 11, -1) Else GUICtrlSetImage(-1, StringStripWS($CurrentIcon, 3), $CurrentIcID, -1) EndIf If $CurrentDrive <> "a:" And $CurrentDrive <> "b:" Then $DirsArr = _FileListToArray($CurrentDrive, "*", 2) If IsArray($DirsArr) Then For $j = 1 To $DirsArr[0] $CurrentDir = $DirsArr[$j] GUICtrlCreateTreeViewItem($CurrentDir, $MainDriveID[$i]) GUICtrlSetOnEvent(-1, "GetText") _GUICtrlTreeViewSetIcon($MainTreeViewID, -1, "shell32.dll", 4) Next EndIf EndIf Next EndIf While $IsExit = 0 Sleep(10) WEnd $Path = StringReplace(_GUICtrlTreeViewGetTree($MainTreeViewID, "\"), "\\", "\") GUIDelete() Opt("GuiOnEventMode", 0) If $IsCancel = 1 Then SetError(1) Return "" Else Return $Path EndIf EndFunc Func GetText() GUICtrlSetData($PathInput, GUICtrlRead(@GUI_CtrlId, 1)) EndFunc Func OK() Global $IsExit = 1 EndFunc Func Cancel() Global $IsExit = 1, $IsCancel = 1 EndFunc Func Quit() Exit EndFunc Func _DrivesListToArray($Type) $DrivesArr = DriveGetDrive($Type) If IsArray($DrivesArr) Then Dim $DrivesListArr[$DrivesArr[0]+1] $DrivesListArr[0] = $DrivesArr[0] For $iDrive = 1 To $DrivesArr[0] $CurrentDrive = $DrivesArr[$iDrive] $DrivesListArr[$iDrive] = $CurrentDrive Next EndIf Return $DrivesListArr EndFunc |
------- Отправлено: 10:59, 12-02-2007 | #187 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Вопрос знатокам.
А можно ли как-нибудь "раскомпилировать" .exe файл обратно в .au3? |
Отправлено: 21:42, 12-02-2007 | #188 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать biggreeder
Цитата:
|
|
------- Отправлено: 22:39, 12-02-2007 | #189 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Creat0R
Спасибо, дружище. Выручил. Винт накрылся. Думал пропали все мои скрипты (на диск записывал только exe-файлы) |
Отправлено: 23:52, 12-02-2007 | #190 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|