|
Компьютерный форум 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 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Никак не могу разобраться со всем что связанно с кодировками...
При проверке на существование файла, если проверяемы путь в кодировке UTF-8, и содержит кериллицу (русские буквы), то файл не найден, перекодировать то можно, но что делать если заранее не известно какая будет кодировка (путь к примеру берётся из файла конфигурации)? Можно ли написать функцию, которая будет определять кодировку строки? А таже проблема с отображением кодировки в гуи, если язык в системе не русский и не английски, то ни одна функция не помагает нормально отобразить кириллицу. Есть функция _Utf8ToAnsi() (от amel27), но она тут не помагает (помагает если системный язык русский), есть также функция StringToUTF(), и она тоже не помагает... как сделать уникальное отображение кириллицы в гуи, чтобы на любом языке (установленном в системе), нормально всё отображалось? |
------- Отправлено: 18:55, 15-01-2007 | #121 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать написал скрипт на AutoIt для установки Office 2000.
серийник там в SETUP.INI никак не задается, поэтому серийный номер ввожу вот так: Send('FXWX9QCJ4FGHCRYH9Y8FXQP6G') но срабатывает это далеко не всегда. есть две проблемы: 1) если в винде язык по умолчанию - русский, то вместо латинских букв скрипт вводит в поле ввода русские: АЧЦЧ9 ЙСО4А итд, то есть те русские буквы, которые написаны на соответствующих клавишах. 2) иногда что-то протормаживает и вообще вводится мешанина из букв, как будто из этой строки Send('FXWX9QCJ4FGHCRYH9Y8FXQP6G') выбрали 7-9 букв, через каждые 2-3 буквы и разбавили их буквой "Ж", которой вообще по-идее там быть не может, ведь она соответствует на клавиатуре знаку ";" сейчас попробую сделать ввод серийника с помощью ControlSetText, но мне непонятно, почему так странно работает 'Send' если язык в винде по умолчанию задан русский? может подскажет кто-нибудь? спасибо. p.s. с помощью 'ControlSetText' вроде получилось, хотя учитывая непонятность работы 'Send' нет уверенности, что все и всегда будет работать корректно пока работает... |
Последний раз редактировалось i_mihal, 15-01-2007 в 20:49. Отправлено: 20:41, 15-01-2007 | #122 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать i_mihal
Да, есть такая проблема... Я её решаю с помощью вставки из буфера обмена: ClipPut("FXWX9QCJ4FGHCRYH9Y8FXQP6G") Send("^м") Цитата:
Всем: Оказывается, с помощью WinApi можно проделывать интересные манипуляции с окнами... Анимация окон GUI, с помощью WinApi Использование: DllCall("User32.dll","long","AnimateWindow","hwnd",Идентификатор окна,"long",Продолжительность в миллисекундах,"long",Эффект) Эффекты: Эффекты имеет смысл задавать в качестве констант: Const $AW_ACTIVATE = 0x20000 AW_ACTIVATE = 0x20000 (Активирует окно, конфликтует с AW_HIDE) AW_BLEND = 0x80000 (Постепенное исчезновение-появление) AW_CENTER = 0x10 (Разворачивает окно из центра) AW_HOR_POSITIVE = 0x1 (Слева направо) AW_HOR_NEGATIVE = 0x2 (Справа налево) AW_SLIDE = 0x40000 (Прокрутка) AW_VER_POSITIVE = 0x4 (Сверху в низ) AW_VER_NEGATIVE = 0x8 (Снизу в верх) AW_HIDE = 0x10000 (Скрывает окно) Эффекты по умолчанию ориентированны на появление окна, для скрытия окна используйте их совместно с AW_HIDE. Можно получить интересные результаты комбинируя эффекты между собой. Например: 0x4 + 0x1 (анимация по диагонали) Рабочий пример: #include <Guiconstants.au3> Opt("GUIOnEventMode",1) $test=GUICreate("WinApi_test",400,300) GUISetOnEvent($GUI_EVENT_CLOSE,"ExitGui") DllCall("User32.dll","long","AnimateWindow","hwnd",$test,"long",700,"long",0x8+0x40000) GUISetState() While 1 Sleep(100) WEnd Func ExitGui() DllCall("User32.dll","long","AnimateWindow","hwnd",$test,"long",500,"long",0x10+0x10000) Exit EndFunc |
|
Последний раз редактировалось Diamond, 15-01-2007 в 21:42. Причина: Два сообщения почему-то склеились вместе... Отправлено: 21:34, 15-01-2007 | #123 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать i_mihal
ControlCommand вроде будет всегда срабатывать: На счёт Send(), решение для смены раскладки клавиатуры вроде есть в Faq'е (см. “Как с помощью AutoIt сменить раскладку клавиатуры”) Diamond Красиво! :UP: но рамка всего гуи как бы нарисованна, т.е углы не округлённые как должны быть в XP, даже немного затемнённые, это можно поправить? P.S Цитата:
|
|
------- Отправлено: 23:04, 15-01-2007 | #124 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Оказывается, возможно привязать функцию _MsgBox() (от amel27), и любое окно гуи к другому окну (не обязательно к гуи).... На мысль меня навёл пример из Faq'а о переключении раскладки клавиатуры (а именно, пременная $hWnd): Opt("WinTitleMatchMode", 4) Run("notepad.exe") $NotPadTitle = "classname=Notepad" WinWait($NotPadTitle, "", 5) $hWnd = WinGetHandle($NotPadTitle) WinSetState($NotPadTitle, "", @SW_DISABLE) GuiCreate("Attach To Window Gui", 300, 400, -1, -1, -1, -1, $hWnd) GuiSetState() $Msg = 0 While $Msg <> -3 $Msg = GuiGetMsg() Sleep(10) Wend WinSetState($NotPadTitle, "", @SW_ENABLE) |
------- Отправлено: 23:42, 15-01-2007 | #125 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
Спасибо, приму к сведению. |
||
Отправлено: 01:25, 16-01-2007 | #126 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Diamond
Цитата:
Цитата:
Цитата:
Вставляем так: ClipPut($CmdLine[1]) Если Ком. строка содержит кириллицу, то когда пытаемся куда то вставить текст из буфера обмена, то уже вставляется в неверном формате... кстати я даже не знаю как перекодировать его, кто знает плиз подскажите, давно хотел узнать Т.е вот к примеру если такой скрипт закомпилировать: А потом запустить его к примеру из батника так: То в сообщении мы увидим ЄхёЄ (крякозябры) |
|||
------- Отправлено: 03:24, 16-01-2007 | #127 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 03:55, 16-01-2007 | #128 |
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
|
|
Отправлено: 18:22, 16-01-2007 | #129 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Цитата:
graftabl 1251 | echo %username%>MyName.txt Хотя конкретно для твоего случая это не сработает. При создании пакетного Файла возьми за привычку конвертировать текст в Dos(oem), например c помощью текстового редактора: BRED - хороший заменитель блокнота, или любой другой доступный редактор который умеет работать с кодировками, в самом крайнем случае открываешь пакетный файл в WordPad ( > Сохранить как > Текстовой документ MS-DOS), а затем меняешь расширение на *.bat |
||
Последний раз редактировалось Diamond, 16-01-2007 в 21:53. Причина: Синтаксическая ошибка Отправлено: 21:37, 16-01-2007 | #130 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|