Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Закрытая тема
Настройки темы
[Архив - Часть 1.3] AutoIt скрипты

Старожил


Сообщения: 250
Благодарности: 16

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе 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
Благодарности: 32

Профиль | Отправить PM | Цитировать


Creat0R
VelDmi
Мне трудно представить что кто-то, с затёкшим от напряжения пальцем, упорно удерживает панель заголовка, во время работы приложения.
Цитата:
Т.е получается, что это ответственность программиста предусматривать подобные вещи, а не системы...
Полностью согласен, но при этом возникает интересный парадокс.
Мы требуем от разработчиков исправления бага, но в тоже время забываем что сами являемся в определённой степени разработчиками приложений на AutoIT.
А что нам в свою очередь, мешает исправить этот баг в собственных AutoIT сценариях. Тем более, как уже было сказано amel27 такая возможность есть:
Цитата:
Думаю проблема в AdLib, так как это чисто AutoIT-овский планировщик и он отключается на время передачи управления системному коду (через DLLCall), поэтому ИМХО нужно либо избегать таких вызовов, либо использовать модель GUIRegisterMsg, которая поддерживается самой системой... правда в этом случае прорисовку придется выполнять в основном цикле, а обработку нажатий наоборот в процедуре.
Что... для нас это сложно и не удобно? А уж что говорить о разработчиках AutoIT. Учитывая тот факт что AutoIT бесплатен, сомневаюсь что они захотят что-то глобально поменять.
Получается разработчики AutoIT, свернули вину на разработчиков Windows, а мы в свою очередь свернули вину на разработчиков AutoIT. Но никто из всех трёх (включая и нас), не хочет изменять что-либо в коде.

Отправлено: 06:35, 24-05-2007 | #421



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 205
Благодарности: 20

Профиль | Отправить PM | Цитировать


Diamond
Цитата:
Но никто из всех трёх (включая и нас), не хочет изменять что-либо в коде.
Оно, я думаю, не очень то и надо.
Учитывая
Цитата:
Мне трудно представить что кто-то, с затёкшим от напряжения пальцем, упорно удерживает панель заголовка, во время работы приложения.

Отправлено: 07:12, 24-05-2007 | #422


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Diamond
Цитата:
Мне трудно представить что кто-то, с затёкшим от напряжения пальцем, упорно удерживает панель заголовка, во время работы приложения
Тут дело не в этом, просто иногда “скрипт вынужден” использовать внешние ресурсы, и для корректного слежения за работой этих ресурсов (что не маловажно), или даже для вывода информации возвращяемой от этих ресурсов, требуется упорное наблюдение (не упуская из виду как говорится). А когда юзеру вдруг приспичет подвигать то или иное окошко (кстати, я на оф. форуме приводил пример, что если на деактивированном меню нажать мышкой, то также весь скрипт останавливается, и юзеру нет необходимости затёкшими пальцами удерживать что либо ), то слежка будет нарушена, что может привести к неправильной работе родительского скрипта (я с этим не раз сталкивался, поэтому и начал эту тему).

Цитата:
Мы требуем от разработчиков исправления бага, но в тоже время забываем что сами являемся в определённой степени разработчиками приложений на AutoIT.
Да, но в отличие от остальных полноценных языков программирования, AutoIt обладает многими ограничениями, я не жалуюсь, этот инструмент для меня стал серъёзным шагом в понимании основ программирования, просто иногда хочется подвигать горизонты (что вполне могут сделать разработчики, не прикладывая столько усилии сколько уйдёт у нас, у “простых смертных”).

Цитата:
Что... для нас это сложно и не удобно? А уж что говорить о разработчиках AutoIT.
Ну им наверняка проще...


Цитата:
Получается разработчики AutoIT, свернули вину на разработчиков Windows, а мы в свою очередь свернули вину на разработчиков AutoIT.
Я бы так не сказал, я лично не сворачивал на них вину, просто заметил эту проблему, тем самым намекнул на то что желательно бы это поправить

Цитата:
Но никто из всех трёх (включая и нас), не хочет изменять что-либо в коде.
Эх, мне бы знания разработчиков AutoIt, при этом оставить свою амбицию и стремление, и о желании речи никакой не будет, оно есть... ну и чуток времени бы свободного

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 07:30, 24-05-2007 | #423


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Ок, а как это реализовать?
только двумя процессами:
Код: Выделить весь код
#include <GUIConstants.au3>
; Ветвление на "генератор" по параметру командной строки: <time> <hwnd>  TimeDisp_1
If ""&$CmdLine[$CmdLine[0]]='TimeDisp_1' Then TimeDisp_1 ($CmdLine[2], $CmdLine[1])
; Регистрируем свое событие и функцию
GUIRegisterMsg ($WM_USER+1, "TimeProc_1")
$Time_1 = 100 ; период повторения
; Твой ГУИ (без изменений)
Opt("GuiOnEventMode", 1)
$hWndMain=GUICreate("Test")
GUISetOnEvent(-3, "Quit")
GUICtrlCreateMenu("Test Menu")
GUISetState()
; Запускаем генератор событий
ShellExecute (@AutoItExe, '"'& @ScriptFullPath &'" '& $Time_1 &' '& $hWndMain &' TimeDisp_1')
; Пустой цикл
While 1
    Sleep (1000)
Wend
; Код "генератора событий"
Func TimeDisp_1($hWnd, $tWait = 500)
    $hWnd = HWnd($hWnd)
    While WinExists($hWnd)
        Sleep ($tWait)
        $ret = DllCall ("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", $WM_USER+1, "int", 0, "ptr", 0 )
    Wend
    Exit
EndFunc
; Функция обработки события
Func TimeProc_1($hWnd, $Msg, $wParam, $lParam)
    ConsoleWrite('*')
EndFunc
; Кусок ГУИ
Func Quit()
    Exit
EndFunc
Цитата:
в отличие от остальных полноценных языков программирования, AutoIt обладает многими ограничениями
все-таки это скриптовый язык, а в своей категории он имхо лучший
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:54, 24-05-2007 | #424


Ветеран


Сообщения: 825
Благодарности: 50

Профиль | Отправить PM | Цитировать


amel27
А как ты код при вставке цветныс делаешь?

Отправлено: 17:19, 24-05-2007 | #425


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Цитата:
только двумя процессами:
Хм.. я думал это будет что-то вроде установки задачи для Windows чтобы она собственными средствами “вызывала” подобное сообщение в моём Гуи (т.е без надобности постоянного вызова вторичного скрипта).

Но оно работает, а значит это решаемо проще чем я думал, спасибо большое!

NikLok
Цитата:
А как ты код при вставке цветныс делаешь?
Вопрос не ко мне, но я всё же отвечу...

Я как то тоже поинтересовался этим вопросом, ответ от amel27 .

P.S
Кстати, я немного изменил метод (для себя), в принципе нет особой необходимости сохранять в файл результаты, поэтому при первом открытии Гуи галка для ввода исходного кода вручную сразу устанавлвивается, а также есть возможность после вывода результатов одной кнопкой скопировать результат в буфер обмена и закрыть Гуи.
Скоро выложу обновлённую версию.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 18:29, 24-05-2007 | #426


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
я думал это будет что-то вроде установки задачи для Windows чтобы она собственными средствами “вызывала” подобное сообщение
собственными средствами можно только "зашедулить" вызов скрипта/программы, т.е. опять же процесса
Цитата:
без надобности постоянного вызова вторичного скрипта
по аналогии с CallBack можно сваять простенькую DLL-ку и отправлять сообщения из специального потока в том же процессе... если есть интерес могу попробовать на выходных... кстати, с подачи Piccaso (с оффсайта) Dll-ки собираю теперь на FreeBasic

Цитата:
Скоро выложу обновлённую версию
ADD: скрипты выкладывай в форум, интернет-качалками (типа Dounload Master) аттачи нормально берутся

Последний раз редактировалось amel27, 25-05-2007 в 04:58.


Отправлено: 04:48, 25-05-2007 | #427


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Цитата:
если есть интерес могу попробовать на выходных
Есть , спасибо.

Цитата:
крипты выкладывай в форум
Ок.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 05:24, 25-05-2007 | #428


Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


VelDmi
Ну да, скорее всего так.
У многих приложений наблюдается подобное поведение. Думаю, если это можно назвать "багом", то условно.
Creat0R
Цитата:
Тут дело не в этом, просто иногда “скрипт вынужден” использовать внешние ресурсы, и для корректного слежения за работой этих ресурсов
Если речь идёт об автоматизации управляющих элементов и окон, то да. Случалось и у меня... С другой стороны, можно использовать BlockInput(), ограничится предупреждением пользователя, либо отказаться от использования GUI, ну и в конце концов запустить другой процесс(скрипт), который выполнит необходимые действия и передаст информацию GUI. Думаю, выход можно найти почти из любой ситуации.
Цитата:
Ну им наверняка проще...
Это похоже на сложившийся у многих стереотип, типа: "хорошо там, где нас нет".
Цитата:
Я бы так не сказал, я лично не сворачивал на них вину, просто заметил эту проблему, тем самым намекнул на то что желательно бы это поправить
Ведь я выразился фигурально, а под словом "мы" подразумевал если не всех, то большинство пользователей AutoIT (включая и меня). Все хотят улучшений и расширений возможностей AutoIT, а в случае обнаружения багов сетуют на разработчиков(было бы странно, если бы всё было наоборот). Но ведь если есть возможность обойти проблему другим путём, то почему бы и не попробовать.
Ну и конечно всегда остаётся второй вариант: "дождаться пока проблему решат разработчики", что кстати вполне возможно, ведь AutoIT от версии к версии набирает силу, и надеюсь что появится больше нововведений которые если даже и не исправят, то по крайней мере с большей вероятностью позволят обойти тот или иной баг.
Цитата:
Эх, мне бы знания разработчиков AutoIt, при этом оставить свою амбицию и стремление, и о желании речи никакой не будет, оно есть... ну и чуток времени бы свободного
Любое программирование требует времени и усилий, и чем больше затрачено усилий на решение поставленной задачи, тем больше радость от победы, разве нет? При этом вопрос нехватки времени уже сам по себе переходит на второй план, ведь здесь важна самоцель и я верю что у тебя она есть. А знания при таком подходе обязательно придут.

Отправлено: 06:22, 25-05-2007 | #429


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: zip Au3ToPst_1.2.zip
(6.0 Kb, 14 просмотров)

Diamond
Цитата:
можно использовать BlockInput(), ограничится предупреждением пользователя, либо отказаться от использования GUI
Ну это уже крайности, тогда нет смысла что либо говорить о ГУИ, ведь проблема замечена именно с ним - Можно не прибегать к подобным крайностям, и просто деактивировать гуи, но это то самое ограничение, о которм я писал.

Цитата:
выход можно найти почти из любой ситуации.
100% согласен, но думаю в результате важен именно “выход”, и как он будет выполнен

Цитата:
если есть возможность обойти проблему другим путём, то почему бы и не попробовать.
От безвыходости именно это мы и делаем, но как оказывается в конце концов, эти “пробы” заканчиваются ещё большими ограничениями и подхрамываниями в работе скрипта чем те о которых я писал.

Цитата:
всегда остаётся второй вариант: "дождаться пока проблему решат разработчики", что кстати вполне возможно, ведь AutoIT от версии к версии набирает силу, и надеюсь что появится больше нововведений которые если даже и не исправят, то по крайней мере с большей вероятностью позволят обойти тот или иной баг.
“Надежда умирает последней” © - Вот поэтому я и пишу баг репорты, потому что знаю что есть шанс на фиксы, кстати, пару моих репортов (1, 2, 3, 4, 5) всё таки пофиксили .

Цитата:
чем больше затрачено усилий на решение поставленной задачи, тем больше радость от победы, разве нет?
Конечно да. Просто иногда после “длительных усилии” уже не хватает сил на радости

amel27, NikLok и ВСЕ:

Прикрепил к посту новую версию ГУИ для обработки скрпитов в “цветной вид” (для вставки на форумах).
Теперь в нём все настройки сохраняются, и добавлены многие проверки на ошибочность.

amel27
Чуть не забыл, если пропустить на обработку сам скрипт (иронично получается ), то находятся неопознаные стили, я что-то так и не понял, как распознавать и соответственно добавлять неопознанные стили?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 25-05-2007 в 09:52.


Отправлено: 09:41, 25-05-2007 | #430



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 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




 
Переход