|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36549 |
Профиль | Сайт | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
Цитата:
А по второму адресу - к примеру тут HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E} должно быть имя корзины, там так и написано Корзина (в “по умолчанию”), но у меня корзина именуется как Mycop - Вот тут то и проблема, список содержит именно Mycop (это латинские буквы кстати), в реестре я не нашёл это значение |
|
------- Отправлено: 12:33, 09-10-2007 | #571 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
ну не знаю ... у меня после переименования новое имя сразу появилось в HKCU, правда чтобы я смог переименовать корзину с рабочего стола мне пришлось применить соответствующий твик |
Отправлено: 13:06, 09-10-2007 | #572 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27,
А «Мои документы» тоже нормально отображаются в реестре? У меня их вообще нигде нету, даже не в оригинальном названии . |
------- Отправлено: 13:21, 09-10-2007 | #573 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Большое спасибо за пример, а если бы ты ещё нашёл время, что бы разжевать мне эту функцию: то было бы вообще здорово! А то ведь простое использование знаний не даст. |
Отправлено: 14:57, 09-10-2007 | #574 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
вызывается функция _DllCallBack, которая как бы регистрирует для процесса (скрипта) указанную функцию (через параметр $FuncName), и возвращает на неё указатель.. Далее просто по этому указателю вызывается таймер (строка с вызовом Dll) с заданым временем промежутка между повторами вызова (a.k.a AdibEnable ) - Всё, наша функция вызывается каждый заданный промежуток времени, пока не высвободить таймер (см. в функции Quit()). Пример-Скрипт для предотвращения ввода не цифр в Input-поле: #include <GuiConstants.au3> Global Const $WM_COMMAND = 0x0111 Global $GUIOldPos[2] $GUI = GUICreate("<Only Numbers> in Input Demo GUI", 300, 100) $Input = GUICtrlCreateInput("", 20, 40, 260, 20) $Exit = GUICtrlCreateButton("Exit", 20, 70, 60, 20) GUISetState() GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $Exit ExitLoop Case Else CheckToolTip() EndSwitch WEnd Func CheckToolTip() Local $GetCurInfo = GUIGetCursorInfo($GUI) Local $GuiGetPos = WinGetPos($GUI) If $GetCurInfo[2] = 1 Or $GUIOldPos[0] <> $GuiGetPos[0] Or $GUIOldPos[1] <> $GuiGetPos[1] Then ToolTip("") $GUIOldPos = $GuiGetPos EndIf EndFunc Func _Input_Changed() ToolTip("") Local $ReadInput = GUICtrlRead($Input) If StringRegExp($ReadInput, '[^0-9]') Then GUICtrlSetData($Input, StringRegExpReplace($ReadInput, '[^0-9]', '')) Local $GuiGetPos = WinGetPos($GUI) Local $XPos = $GuiGetPos[0] + 280 Local $YPos = $GuiGetPos[1] + 80 ToolTip("Here only numbers are allowed", $XPos, $YPos, "Not allowed symbol", 3, 1) DllCall("user32.dll", "int", "MessageBeep", "int", 0x0) EndIf EndFunc ;==>_Input_Changed Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam) Local $nNotifyCode = BitShift($wParam, 16) Local $nID = BitAND($wParam, 0xFFFF) Local Const $EN_CHANGE = 0x300 Local Const $EN_SETFOCUS = 0x100 Switch $nID Case $Input Switch $nNotifyCode Case $EN_CHANGE _Input_Changed() Case $EN_SETFOCUS ToolTip("") EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>MY_WM_COMMAND |
|
------- Отправлено: 17:13, 09-10-2007 | #575 |
Старожил Сообщения: 286
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, что то я так и не нашёл - как можно настроить скрипт на выход из цикла по нажатию на определённую клавишу?
Вот как то так пытался, не выходит: |
Последний раз редактировалось DenchikK, 09-10-2007 в 22:16. Отправлено: 21:59, 09-10-2007 | #576 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R,
Цитата Creat0R:
|
|
Отправлено: 06:05, 10-10-2007 | #577 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Привет всем.
По работе понадобилось конвертировать большое количество файлов из одного формата в другой. Пакетного конвертера который бы выполнил мою задачу я ненашёл, поэтому пришлось изголяться непосредственно с приложением в котором есть такая возможность используя обычные команды меню и горячие клавиши (открывая последовательно сначала один файл: выполняя ряд действий, "импорт",..."экспорт" ;затем открывая второй файл и т. д....) Проблему решил написав следующий скрипт ; выбор одного или нескольких файлов $files = FileOpenDialog("Пакетное конвертирование файлов", "c:\", "любые файлы (*.*)", 1 + 4 ) & "|" ; если ничего не выбрано то выходим If @error Then TrayTip("пакетная обработка файлов", 'Выход', 5, 3) MsgBox(16,"Информация","Ничего не выбрано", 7) Exit EndIf $dir_in = StringMid($files,1, StringInStr($files, "\",0,-1)) $Chetchik=1 While $Chetchik<3 $sch=StringInStr( $files,"|",0,$Chetchik) if $sch<>0 Then $Chetchik=$Chetchik+1 Else ExitLoop endif WEnd ; рисуем цикл для двух типов выделений if $Chetchik>2 Then ; группа файлов $i=1 While StringLen($files)>$i $dir_in = StringReplace(StringReplace(StringMid($files,1, StringInStr($files, "|",0,1)), "|", "\"), "\\", "\") $name=StringMid(StringMid($files,StringInStr ( $files,$dir_in)+2 ),StringInStr(StringMid($files,StringInStr ( $files,$dir_in)+2 ),"|",0,$i)+1,StringInStr( StringMid($files,StringInStr ( $files,$dir_in)+2 ),"|",0,$i+1) - StringInStr( StringMid($files,StringInStr ( $files,$dir_in)+2 ),"|",0,$i)-1) if StringLen($name)>0 Then $i=$i+1 prt_to_dwg($name) Else ExitLoop endif WEnd Else ; один файл $name=StringTrimRight(StringMid($files,StringInStr($files,$dir_in)+StringLen($dir_in)),1) prt_to_dwg($name) EndIf ; конец выполнения программы TrayTip("пакетная обработка файлов", 'Конец', 5, 1) MsgBox(64, "Информация", "Все опрации завершены" ) ; функция обработки файла Func prt_to_dwg($value) $value = $value TrayTip("пакетная обработка", 'обработка файла "' & $value & '"', 10, 1) ; для примера откроем блокнот Run("notepad") WinWait("Безымянный") WinActivate("Безымянный") Send("^o") WinWait("Открыть") WinActivate("Открыть") Sleep(100) ControlSetText("Открыть", "", "Edit1", $dir_in & $value) Sleep(5000) WinClose("Открыть") WinClose("Безымянный") WinWaitClose("Безымянный") EndFunc с прогресс баром, возможностью выбора входящих и исходящих папок до и после обработки + возможность использовать включающий и исключающий фильтр в названиях обрабатываемых файлов. Посему вопрос: не делал ли кто нибудь нечто похожее? Неохота изобретать велосипед |
Отправлено: 07:44, 10-10-2007 | #578 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
Отправлено: 07:49, 10-10-2007 | #579 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Lodoss
Вот пример как это можно сделать, если нужен законченный скрипт, тогда выкладывай подробности |
Отправлено: 12:02, 10-10-2007 | #580 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|