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

Компьютерный форум 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

 
Snejok


Сообщения: n/a

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


Как с помощью AutoIt узнать что директория, а что файл? Я сделал так, но может можно проще
Код: Выделить весь код
If FileChangeDir("C:\Windows") Then
 MsgBox (0, "Info", "This is Directory!", "")
Else
MsgBox (0, "Info", "This is File!", "")
EndIF

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


Отправлено: 19:41, 07-03-2006 | #51



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

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


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

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


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

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


Paki
Цитата:
Можно ли сделать например какой нибудь ini файл или что нибудь такое, откуда будет тянуться значение клавиши
Ес-но, можно - FAQ (раздел "Работа с ini-файлами"). Код буде выглядеть примерно так:
Код: Выделить весь код
$ini=@ScriptDir & '\my.ini'
$HotKey=IniRead($ini,"Section","HotKey","{F1}") ;последний параметр - значение по ум. (если параметр HotKey отсутствует в файле или ini-файла вообще нет)
HotKeySet("'"&$HotKey&"'", "go")

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


Отправлено: 03:43, 08-03-2006 | #52


Googler


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

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


Snejok

Так же, как из командной строки - используя обратный слэш в конце имени, пример:
Код: Выделить весь код
; Прием параметра из командной строки
If $CmdLine[0]=0 Then
  Exit
Else
  $file=$CmdLine[1]
EndIf
Код: Выделить весь код
; Убираем оконечные слэши
While StringRight($file,1)="\"
  $file=StringLeft($file,StringLen($file)-1)
Wend
; Определяем тип
If FileExists ($file & "\") Then
  MsgBox(0,"","This is Directory!")
Else
  If FileExists ($file) Then
   MsgBox(0,"","This is File!")
  Else
   MsgBox(0,"","File or Directory Not Exist!")
  EndIf
EndIf

Последний раз редактировалось amel27, 09-03-2006 в 01:17.


Отправлено: 03:50, 08-03-2006 | #53

rhtu


Сообщения: n/a

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


Уточнение получения объекта AutoIt3X при технологии VBScript.

Запись из AutoIt_ru.chm для AutoIt3X, которая приведена ниже, машина
в моем случае применения метода CreateObject() воспринимает как 429-ю
ошибку -- не может создать объект! Поэтому надо ли указывать путь к
autoit3.exe? Или запись, которая ниже, позволяет найти autoit3.exe где
угодно, даже на съемном диске (USB-диске)? Или моя первая строка для
"fso" обладает недостатком, который приводит к невозможности создания
объекта "oAutoIt" при записи из AutoIt_ru.chm? Также есть ли какая-л.
литература на рус. языке с примерами применения AutoIt3Х? Пожалуйста,
подскажите решение для CreateObject(" ???? ").
Код: Выделить весь код
Dim fso, oAutoIt
Set fso = GetObject("c:\windows\wscript.exe", "WScript.Application")
Set oAutoIt = fso.CreateObject("AutoItX3.Control")
oAutoIt.WinClose "Microsoft Internet Explorer", ""

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


Отправлено: 23:47, 08-03-2006 | #54


Googler


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

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


rhtu
Цитата:
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.WinClose "Untitled - Notepad", ""
Пример взят из справки

Отправлено: 01:29, 09-03-2006 | #55


Аватара для nsergeip

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


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

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


Цитата:
Не сталкивался, но, если ты здесь приведешь инфу о той кнопке, полученную с пом. AutoIt Window Info ("%ProgramFiles%\AutoIt3\AU3Info.exe"), то, скорее всего, решение найдется (для фиксации показаний в окне AutoIt Window Info нужно нажать Ctrl+Alt+F). А для начала можешь попробовать способ из FAQ (раздел "Вввод данных / работа с элементами управления", пункты 5, 6, 7).
Код: Выделить весь код
Вот информация полученная autoit

>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title:	pdfFactory Pro
Class:	#32770
Size:	X: 420    Y: 206    W: 524    H: 133

>>>>>>>>>>> Mouse Details <<<<<<<<<<<
Screen:	X: 675	Y: 311
Cursor ID:	2

>>>>>>>>>>> Pixel Color Under Mouse <<<<<<<<<<<
RGB:	Hex: 0xECE9D8	Dec: 15526360

>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size:		X: 221    Y: 67    W: 75    H: 23
Control ID:	2
ClassNameNN:	Button1
Text:		ОК

>>>>>>>>>>> Status Bar Text <<<<<<<<<<<


>>>>>>>>>>> Visible Window Text <<<<<<<<<<<
ОК
pdfFactory Pro was successfully installed!

To use pdfFactory Pro, just print to the pdfFactory Pro printer from any Windows application.

>>>>>>>>>>> Hidden Window Text <<<<<<<<<<<
скрипт вот такой писал, не работает почему-то
Код: Выделить весь код
WinWaitActive("pdfFactory Pro","OK")
Send("{TAB}")
Send("{ENTER}")

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


Отправлено: 07:36, 09-03-2006 | #56


Аватара для dark_n

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


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

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


Имеется такой скрипт.
Цитата:
run("\\neiwton\auditscaner\ina32.exe")
sleep(200)
WinActivate("")
sleep(200)
send("{Enter}")
sleep(200)
WinWaitActive("Inventory Analyzer")
sleep(200)
send("{Enter}")
Когда я запускаю его ,все работает ,как надо.
1) Когда я закидываю его в автозапуск : ina32.exe при входе в систему появляется ,но на окне нет фокуса, соответственно я не могу послать в окно нажатие клавиши.Даже не представляю почему WinActivate("") не срабатывает(у окна нет заголовка т.е. title). !!??
2)как можно послать {Enter} определенной кнопке на окне?

Заранее спасибо.

Отправлено: 07:50, 09-03-2006 | #57


Аватара для nsergeip

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


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

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


Вот скрипт
Код: Выделить весь код
Run("Setup.exe")
WinWaitActive("pdfFactory Pro","Да")
Send("{ENTER}")
WinWaitActive("pdfFactory Pro License Agreement","accept the terms")
Send("{TAB}")
Send("{ENTER}")
WinWait("pdfFactory Pro")
if WinWaitActive("pdfFactory Pro","Да",2) Then
Send("{TAB}")
Send("{ENTER}")
WinWaitActive("pdfFactory Pro","ОК")
Send("{TAB}")
Send("{ENTER}")
Else
WinWaitActive("pdfFactory Pro","ОК")
Send("{TAB}")
Send("{ENTER}")
EndIf
Этим скриптом я устанавливаю pdfFactory/ Проблема в том что если на компе установлена уже эта программа то окно

Код: Выделить весь код
Press CTRL-ALT-F to pause the display.

>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title:	pdfFactory Pro
Class:	#32770
Size:	X: 429    Y: 341    W: 620    H: 126

>>>>>>>>>>> Mouse Details <<<<<<<<<<<
Screen:	X: 536	Y: 431
Cursor ID:	2

>>>>>>>>>>> Pixel Color Under Mouse <<<<<<<<<<<
RGB:	Hex: 0xECE9D8	Dec: 15526360

>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size:
Control ID:
ClassNameNN:
Text:

>>>>>>>>>>> Status Bar Text <<<<<<<<<<<


>>>>>>>>>>> Visible Window Text <<<<<<<<<<<
&Да
&Нет
Setup found settings from a previous installation of pdfFactory Pro.  Would you like to import those settings now?

>>>>>>>>>>> Hidden Window Text <<<<<<<<<<<
появляется, но если уже программа была у становлена то оно не появляется.
ВОПРОС: как написать этот скрипт правильно, так чтобы было предусмотрено то что программа уже имеется, и то что ее еще нет.

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


Отправлено: 08:50, 09-03-2006 | #58


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

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


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

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


All
На этом форуме принято приводить листинги внутри тэга code !
По теме - Прочтите FAQ !!!



nsergeip
Цитата:
не работает почемуто
Да потому, что у тебя (скорее всего) в каждом окне текст "ОК" есть Попробуй так (это очень перестраховочный способ):
Код: Выделить весь код
WinWait("pdfFactory Pro","successfully installed")
WinActivate("pdfFactory Pro","successfully installed")
WinWaitActive("pdfFactory Pro","successfully installed")
Send("{TAB}")
Send("{ENTER}")
А на эту кнопку можно и сразу нажать: ControlClick("pdfFactory Pro","successfully installed","Button1")

Цитата:
Вот скрипт
фрагмент:
Код: Выделить весь код
if WinWaitActive("pdfFactory Pro","Да",2) Then
Send("{TAB}")
Send("{ENTER}")
WinWaitActive("pdfFactory Pro","ОК")
Send("{TAB}")
Send("{ENTER}")
Else
WinWaitActive("pdfFactory Pro","ОК")
Send("{TAB}")
Send("{ENTER}")
EndIf
заменить на:
Код: Выделить весь код
if WinWait("pdfFactory Pro","Да",2) Then
WinActivate("pdfFactory Pro","Да")
WinWaitActive("pdfFactory Pro","Да")
Send("{TAB}")
Send("{ENTER}")
EndIf
WinWaitActive("pdfFactory Pro","ОК")
Send("{TAB}")
Send("{ENTER}")
Этот способ (наряду с другими) описан в FAQ, а вопрос неоднократно разбирался в старой теме - начни с этого поста и прочитай ответы на него.


dark_n
Цитата:
WinActivate("")
  1. Пустые кавычки в кач-ве аргумента означают последнее активное окно, а при старте из автозапуска вполне возможно, что нужное тебе окно не является таковым. Нужно вписать хотя-бы что-то из этого окна (если нет заголовка, то можно написать WinActivate("","Текст")).
  2. ControlClick, ControlSend.

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


Последний раз редактировалось Sanja Alone, 09-03-2006 в 09:50.


Отправлено: 09:15, 09-03-2006 | #59


Аватара для dark_n

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


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

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


Код: Выделить весь код
run("\\neiwton\auditscaner\ina32.exe")
sleep(2000)
WinActivate("", "Inventory Anlyzer")
sleep(200)
WinWaitNotActive("","Inventory Anlyzer")
send("{Enter}")
sleep(200)
WinActive("Inventory Analyzer")
sleep(200)
send("{Enter}")
почему-то при первом входе в систему(exe-шник скрипта выполняется при входе в систему)
Код: Выделить весь код
WinActivate("", "Inventory Anlyzer")
не срабатывает,окно не активно
когда я делаю выход из системы а
затем вход- фокус появляется и все нормально.Почему так?.

Отправлено: 05:28, 10-03-2006 | #60



Компьютерный форум 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




 
Переход