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

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

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

Ветеран


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

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


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





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


Руководство к действию по работе c AutoIt.
Можно ли с помощью AutoIt выбрать каталог? Хочу нацарапать оболочку, которая мне будет конфиги для nnBackup писать, дык выбрать каталог для бэкапа пока только вручную получается... Нельзя ли как-нть вывалить стандартный диалог по выбору файлов-папок, и получить из него результат действий пользователей?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 10:47, 10-02-2006

 

Аватара для Creat0R

Must AutoIt


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

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


Sanja Alone
Цитата:
Оч. просто это сделать при пом. cmd-файла:
Спасибо, до сих пор, я именно при помощий ком. строки (которую “писал” Аутоит) и реализовал свою цель , правда более примитивней чем твой пример - Но хотел узнать как средствами одного лишь аутоита это сделать, т.к требуется увеличение скорости, и уменьшения загрузкий процессора и памяти.

Цитата:
Здесь все муторней
Ну почему, разве такой командой это не решить просто:
Код: Выделить весь код
cd "путь\к папке"
dir /b /s /o:-d *.* > test.tmp
А затем, аутоитом проверять первую строку временного файла:

Код: Выделить весь код
$NewFile = FileReadLIne("Test.tmp", 1)
amel27
Цитата:
вот что получилось
Получилось идеально!!! Огромное спасибо!


Angelus

Цитата:
где в этом скрипте ошибка?
В начало скрипта, поставь такую строчку:

Код: Выделить весь код
Opt("TrayIconDebug", 1)
Если в скрипте есть строка скрывающая иконку скрипта в трее (#NoTrayIcon), то её нужно временно закоментировать (дописать в начале строки символ ; ).
И когда запустишь скрипт, то наведи мышку на иконку скрипта в трее, и посмотри на какой строке “зависает” скрипт.

Как я это вижу, скрипт зависает на одной из строк, содержащей WinWait или WinWaitActive - желательно ставить время, по истичению которого, скрипт больше не будет “ждать” появления окна или его активности...

Код: Выделить весь код
WinWaitActive("Заголовок", "Текст", 120) ;Где 120, это секунды, по истичению которых, скрипт “продолжит” дальше, вне зависимости от того, появилось\активировалось ли окно или нет.

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

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

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


Отправлено: 01:49, 25-10-2006 | #421



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

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


Аватара для Sanja Alone

Ищу Человека…


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

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


Creat0R
Цитата:
Ну почему, разве такой командой это не решить просто:
Нет. Я же говорю, что эта команда производит сортировку в пределах каждого подкаталога, т.е., первой строкой будет самый новый файл рабочего каталога, а не всего дерева его подкаталогов. А это оч. сильно усложнит решение задачи при пом. cmd-файла.


Angelus
  1. А этот скрипт не подходит?
  2. Отлов ошибок в скриптах описан в FAQ.
  3. Код нужно заключать в тэг code. Прошу не игнорировать ПРАВИЛА ФОРУМА.

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 03:56, 25-10-2006 | #422


Новый участник


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

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


Есть неплохая идея: написать оболочку (GUI) для авторизации запуска скрипта от имени админа.

начал писать и наткнулся на проблемку - незнаю как реализовать проверку строки RunAsSet на наличие прав администратора
вот код:

Код: Выделить весь код
#include <GUIConstants.au3>
GUICreate("Авторизация", 198, 125) 
;фон окна
GUISetBkColor (0x00E0FFFF)
;лейблы 
GUICtrlCreateLabel("Имя администратора", 25, 5)
GUICtrlCreateLabel("Пароль администратора", 25, 50)
;запуск и отмена скрипта
$ok = GUICtrlCreateButton("Ok", 25, 98, 70,20)
$cancel = GuiCtrlCreateButton ("Cancel",105,98,70,20)
;ввод имени
$us = @UserName
$in1 =GUICtrlCreateCombo ($us, 25, 25, 150, 20)
GUICtrlSetData($in1, "admin|qwerty|Администратор|Винни-Пух")
GUICtrlSetTip(-1,"введите имя любой учётной записи" & @CRLF & "имеюшей права Администратора")
;ввод пароля
$in2 = GUICtrlCreateInput ("solo11",  25, 70, 150, 20, 0x20)
GUICtrlSetTip(-1,"введите пароль")

GUISetState(@SW_SHOW)

While 2
$msg = GUIGetMsg()
;считываем введённые данные
$out1 = GUICtrlRead($in1)
$out2 = GUICtrlRead($in2)

Global $user = $out1, $pass = $out2

Select
Case $msg = $ok
;инициализация запуска от имени админа
RunAsSet($user, "", $pass)

;проверка верны ли введённые записи на право обладания правами админа 
;вот здесь незнаю как реализовать проверку. написал но думается неправильно
;---------------------------------------
if	IsAdmin() = -1 Then
MsgBox(16, "Ошибка", "Данная учётная запись не обладает правами Администратора") 
EndIf
;---------------------------------------

;запуск программы
Run("setup.exe")
;закрытие окна
	Case $msg = $cancel
	  ExitLoop
    Case $msg = $GUI_EVENT_CLOSE 
		ExitLoop
	EndSelect
WEnd 
;-------------------------------------
в дополнение хотелось бы сделать так чтобы при неправильном вводе имени или пароля GUI не закрывалось а предлагало заново ввести имя и пароль. Ещё , если пользователь обладает правами администратора GUI вобще не появлялось а начинало запуск скрипта с команды Run либо выводило окно без пароля.
Помогайте решать ! думаю вещь полезная и пригодиться многим.

Последний раз редактировалось Lodoss, 29-10-2006 в 19:18.


Отправлено: 19:11, 29-10-2006 | #423


Аватара для Sanja Alone

Ищу Человека…


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

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


Lodoss
Цитата:
Помогайте решать
Это хотел?
Код: Выделить весь код
#include <GUIConstants.au3>
Opt("RunErrorsFatal",0)
;что запускать
$what_to_run="setup.exe"

If IsAdmin() Then
	;запуск программы
	Run($what_to_run)
Else
	;если не админ, то "рисуем" GUI
	_GUI()
EndIf

Func _GUI()
GUICreate("Авторизация", 198, 125) 
;фон окна
GUISetBkColor (0x00E0FFFF)
;лейблы
GUICtrlCreateLabel("Имя администратора", 25, 5)
GUICtrlCreateLabel("Пароль администратора", 25, 50)
;запуск и отмена скрипта
$ok = GUICtrlCreateButton("Ok", 25, 98, 70,20)
$cancel = GuiCtrlCreateButton ("Cancel",105,98,70,20)
;ввод имени
$us = @UserName
$in1 =GUICtrlCreateCombo ($us, 25, 25, 150, 20)
GUICtrlSetData($in1, "admin|qwerty|Администратор|Винни-Пух")
GUICtrlSetTip(-1,"введите имя любой учётной записи" & @CRLF & "имеюшей права Администратора")
;ввод пароля
$in2 = GUICtrlCreateInput ("solo11",  25, 70, 150, 20, 0x20)
GUICtrlSetTip(-1,"введите пароль")

GUISetState(@SW_SHOW)

While 1
$msg = GUIGetMsg()
;считываем введённые данные
$out1 = GUICtrlRead($in1)
$out2 = GUICtrlRead($in2)

Global $user = $out1, $pass = $out2

Select
	Case $msg = $ok
		;инициализация запуска от имени админа
		RunAsSet($user, "", $pass)

		;проверка верны ли введённые записи на право обладания правами админа
		;---------------------------------------
		if IsAdmin() Then
			;запуск программы
			Run($what_to_run)
			If @error Then
				MsgBox(16, "Ошибка", "Введен неправильный пароль или отсутствует файл "&$what_to_run&@LF&@LF&"Попробуйте еще раз.",5)
			EndIf
		Else
			MsgBox(16, "Ошибка", "Данная учётная запись не обладает правами Администратора",5)
		EndIf
		;---------------------------------------

		;закрытие окна
	Case $msg = $cancel
		ExitLoop
    Case $msg = $GUI_EVENT_CLOSE
		ExitLoop
EndSelect
WEnd
;-------------------------------------
EndFunc

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 08:24, 30-10-2006 | #424


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


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

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


Наваял тут скрипт для FastStone Image Viewer 2.8 с последующей русификацией.
Может, кому пригодится.
Код: Выделить весь код
RunWait (@ScriptDir&'\'&'fs.exe /S') ; Тихая установка самой программы
Run (@ScriptDir&'\'&'Rus.exe') ; Установка русификатора
WinWait("Установка русификатора","Вас приветствует мастер")
WinActivate("Установка русификатора","Вас приветствует мастер")
WinWaitActive("Установка русификатора","Вас приветствует мастер")
Send("{ENTER}")
Send("{ENTER}")
WinWait("Установка русификатора","Внимательно ознакомьтесь")
WinActivate("Установка русификатора","Внимательно ознакомьтесь")
WinWaitActive("Установка русификатора","Внимательно ознакомьтесь")
Send("{UP}{UP}{ENTER}")
WinWait("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в следующую папку")
WinActivate("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в следующую папку")
WinWaitActive("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в следующую папку")
Send("{ENTER}")
WinWait("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в папку")
WinActivate("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в папку")
WinWaitActive("Установка русификатора","Русификатор FastStone Image Viewer 2.8 будет установлен в папку")
Send("{ENTER}")
WinWait("Установка русификатора","Русификатор FastStone Image Viewer 2.8 успешно установлен")
WinActivate("Установка русификатора","Русификатор FastStone Image Viewer 2.8 успешно установлен")
WinWaitActive("Установка русификатора","Русификатор FastStone Image Viewer 2.8 успешно установлен")
Send("{UP}{SPACE}{UP}{ENTER}")
Программа + Русификатор

Последний раз редактировалось Jilted, 30-10-2006 в 12:51.


Отправлено: 11:45, 30-10-2006 | #425


Новый участник


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

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


2Sanja Alone

Да это, но наполовину.
проверил:
Если пользователь админ - оболочка не запускается как и хотелось , если GUI запускается проверка учётки на привелегии админа
Код: Выделить весь код
Case $msg = $ok
RunAsSet($user, "", $pass)
if IsAdmin() Then
Run($what_to_run)
If @error Then
MsgBox(16, "Ошибка", "Введен неправильный пароль или отсутствует файл "&$what_to_run&@LF&@LF&"Попробуйте еще раз.",5)
EndIf
Else
MsgBox(16, "Ошибка", "Данная учётная запись не обладает правами Администратора",5)
EndIf
несрабатывает !!!, т е выдаёт сообщение "Данная учётная запись не обладает правами Администратора" в любом случае, даже если я под пользователем с ограничеными правами правильно ввёл учётные данные администратора. :/

и ещё вопрос можно ли в комбо списке сделать отображение учёток обладающих этими правами администратора . в макро переменных нашёл только @UserName а можно ли получить список всех учёток зарегестрированых на компе и обладающих администраторскими привелегиями?.

Отправлено: 17:48, 31-10-2006 | #426


Аватара для TERMINAL

Ветеран


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

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


Как сделать закрытие окна (Alt+F4), например окно хелпа?!

-------
Автоматизация прежде всего....


Отправлено: 12:47, 01-11-2006 | #427


Аватара для Creat0R

Must AutoIt


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

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


TERMINAL
Цитата:
Как сделать закрытие окна
Можно так:

Код: Выделить весь код
WinClose("Заголовок окна", "Текст окна")
Или так:

Код: Выделить весь код
WinActivate("Заголовок окна", "Текст окна")
WinWaitActive("Заголовок окна", "Текст окна", 10)
Send("!{F4}")

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

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

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:03, 01-11-2006 | #428


Аватара для Creat0R

Must AutoIt


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

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


Хотелось бы решить такую задачу...
Имеется файл, а в нём много разного текста, и нужно перечитать весь текст, и проверить, не содержатся ли в нём дубликаты определённой переменной.
Т.е, допустим файл содержит такой текст:

Код: Выделить весь код
Первая строчка
Вторая строчка
Просто текст
Ещё текст...
Просто текст
И заранее известно, что именно нужно искать, и это помещенно в переменную - $Var = "Просто текст"...

Нужно в этом файле вычеслить, повторяется ли этот самый текст (тот который в переменной), если есть совпадения, то желательно вернуть номер строчки где есть совпадение, и строку содержащюю найденый дубликат (в Array[1].. [2] и т.п).

Возможно уже есть такая опция в 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


Отправлено: 08:08, 02-11-2006 | #429


Аватара для TERMINAL

Ветеран


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

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


Creat0R
Спасибо тебе-(Send("!{F4}")) конкретно помогло.

Вопрос ещё один. У меня в программе ACDSee 8 вводится ключ в поле регистрации,но на совремменых компах он успевает вводится, а на слабых компах скрипт успевает ввести только 4 первых символа (паузы почемуто непомогают). Как сделать чтобы скрипт дождался полного ввода серийника.

Код: Выделить весь код
Global $serial='12345-67890-12345-67890'
Run ( @ScriptDir & '\' & 'Setup.exe' )
WinWait("ACDSee 8 - InstallShield Wizard","ACDSee 8 can run with previous")
WinActivate("ACDSee 8 - InstallShield Wizard","ACDSee 8 can run with previous")
ControlClick("ACDSee 8 - InstallShield Wizard","ACDSee 8 can run with previous","Button1")
WinWait("ACDSee 8 - InstallShield Wizard","I &accept the terms in the lic")
WinActivate("ACDSee 8 - InstallShield Wizard","I &accept the terms in the lic")
ControlClick("ACDSee 8 - InstallShield Wizard","I &accept the terms in the lic","Button3")
ControlClick("ACDSee 8 - InstallShield Wizard","I &accept the terms in the lic","Button5")
WinWait("ACDSee 8 - InstallShield Wizard","&Organization:")
WinActivate("ACDSee 8 - InstallShield Wizard","&Organization:")
ControlClick("ACDSee 8 - InstallShield Wizard","&Organization:","RichEdit20W3")
ControlSetText ( 'ACDSee 8 - InstallShield Wizard', 'Customer Information', 'Edit3', $serial)
;Send($serial)
Sleep(5000)
ControlClick("ACDSee 8 - InstallShield Wizard","&Organization:","Button8")
WinWait("ACDSee 8 - InstallShield Wizard","&Complete")
WinActivate("ACDSee 8 - InstallShield Wizard","&Complete")
И вот ещё-хотелось бы узнать, как сделать, например, окно под названием ММ, чтобы при установке программы, когда вылазит окно ММ закрыть его и повторить установку заново, а если не вылезет тогда продолжать установку?!

Последний раз редактировалось Sanja Alone, 04-11-2006 в 03:30. Причина: добавление тэга code


Отправлено: 10:40, 02-11-2006 | #430



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] 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.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход