Ru-Board.club
← Вернуться в раздел «Программы»

» AutoIT

Автор: ViSiToR
Дата сообщения: 01.11.2006 01:51
LEX1

Цитата:
Примерно также

Большое спасибо
Автор: ViSiToR
Дата сообщения: 02.11.2006 07:07
LEX1
А как теперь закрыть (скрыть) персонаж, не выходя из скрипта?
Автор: LEX1
Дата сообщения: 02.11.2006 17:06
ViSiToR

Код: $figure = "merlin"

Opt("ExpandEnvStrings", 1)
$Path = "%WINDIR%\MSAGENT\CHARS\" & $figure & ".ACS"

$AgentControl = ObjCreate("Agent.Control.1")
$SinkObject=ObjEvent($AgentControl, "event_")
If Isobj($AgentControl) Then $AgentControl.Connected = True

$AgentControl.Characters.Load($figure, $Path)
$A = $AgentControl.Characters($figure)
$A.Show
$A.Play("Greet")
$A.Play("RestPose");
$A.Speak("Здравствуйте! Добро пожаловать!");
$A.MoveTo(200, 200);
$A.Hide
Sleep (10000)
$A.StopAll
$AgentControl.Characters.Unload($figure)
Sleep (5000)
Exit
Автор: ViSiToR
Дата сообщения: 03.11.2006 01:01
LEX1

Класс! спасибо, он теперь ещё и показывать текст будет ... он его должен проговаривать, или так как есть, просто выводить жёлтое окошко?
Автор: LEX1
Дата сообщения: 03.11.2006 16:48
ViSiToR

Цитата:
он его должен проговаривать

Да, если установлены нужные библиотеки (я ставил spchapi и Digalo).
kpuk

Цитата:
не всё в виндовсе изменяется через рег-файлы

Не всё. Но больше 90% изменяется.

И я не думаю, что на AutoIT-е это можно сделать лучше (он всё-таки предназначен для несколько других целей), чем, например, на встроенном языке X-Setup.
Автор: ViSiToR
Дата сообщения: 04.11.2006 01:31
LEX1

Thnx!

По поводу реестра - возможно на AutoIt'е, изменять параметры IE? а точнее, изменять команды выполняемые по нажатию кнопок. Т.е, например, при добавлении страницы в избранное, появляется окошко, и в нём есть кнопка “ОК” (среди прочих ) которая и добавляет в избранное страницу, так вот, хотелось бы кроме добавления страницы в избранное, чтобы по нажатию этой кнопки, ещё вызывалась внешняя программа (желательно с параметром). Возможно на аутоите, прописать такую функцию для IE? - Как мне кажется, тут нужно реестер править, но в поисках ответа я ничего там не нашёл
Автор: Leony8
Дата сообщения: 06.11.2006 13:41
- может ли твикер отключить службу, которая занимает память и ресурсы процессора (например автоматическое обновление)
и зарегистрировать новую, пользовательскую?
- может ли твикер, организовывать диалоги с пользователем в зависимости от условий, изменять ini-файлы?
- можно ли в каком твикере быстро перетасовать плагины в нужный раздел?
Я вижу, что даже при обилии функций толку от обычных твикеров мало и они неспособны даже на элементарное.
Таким образом, я говорю о глобальном настройщике, а не просто о твикере:
я хочу в одном месте сконцентрировать настройку всей системы "под себя", "под конкретный компьютер", причём с
возможностью и сам твикер настраивать "под себя", под видение и мнение конкретного администратора (а это не просто
"избранное" в одном из пунктов меню)
Автор: mikar
Дата сообщения: 21.11.2006 06:13
AutoIt 3.2.1.13 Beta

Цитата:
Latest Changes:
- Added: Listview Alternate coloring with $GUI_BKCOLOR_LV_ALTERNATE
- Fixed: Recent crash under Windows 98
- Fixed: List control height when font size changes
- Fixed: GUICtrlSetImage not testing icon on error
- Fixed: @ScriptDir equal @WorkingDir for rootdir (x:\)
- Fixed: GUIGetCursorInfo (winhandle) when child not active
- Fixed: AutoIt error not displaying error line number
- Fixed: Yet another MsgBox() timeout regression fixed
- Fixed: au3check only checks for a string to terminate on the same line to. (v1.54.5)
- Fixed: _StringAddComma()
- Fixed: drag & drop $GUI_EVENT_DROPPED notififation on edit control

http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.2.1.13-beta-setup.exe
Автор: mikar
Дата сообщения: 12.12.2006 07:41
AutoIt 3.2.1.14 Beta

Цитата:
Latest Changes:
- Added: GuiCtrlSetState $GUI_DROPNOTACCEPTED
- Added: $GUI_FOCUS, $GUINOFOCUS for listviewitem control
- Added: IsDllStruct()
- Added: SRandom() to set seed for random number generation
- Added: WinTitleMatchMode for case insensitive matching
- Changed: Small tweak to Floor() to ensure it is not as susceptible to floating point precision errors
- Changed: Small tweak to Ceiling() to ensure it is not as susceptible to floating point precision errors
- Fixed: WorkingDir in ShellExecute(Wait)
- Fixed: DllCall() crashes when using uint, ushort
- Fixed: PixelCheckSum() GDI leak
- Fixed: Window titles with "regexp=REGEXP" return 0 and @error=1 on bad pattern
- Fixed: GuiCtrlRead on listview control when sorted
- Fixed: FileRecycleEmpty() regression
- Fixed: @OSVERSION on Windows 9x
- Fixed: GuiGetCursorInfo with Handle not retrieving mouse click info

http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.2.1.14-beta-setup.exe
Автор: RVM_aka_Vasil
Дата сообщения: 13.12.2006 06:38
Такая проблема. С помощью AutoIT делаю скрипт, который перемещает мышь в заданное положение экрана и там выполняется клик левой кнопкой мыша. Компилирую этот скрипт в ехе файл и при помощи менеджера горячих клавиш /в моем случае это Mkey, но я думаю разницы особой нет/ назначаю этому скрипту клавишу. Жму клавишу - все работает. НО!!! Есть такая игра Morrowind Мне бы хотелось и в ней мышку подобным образом запрограммировать, но не получается. Жму горячую клавишу /читай - запускаю скрипт/ и мышка в Морре убегает в угол экрана, а не туда куда ей положено. Разрешение экрана в системе и в игре одинаковое. Что можно сделать в этоом случае? Помогите!
Автор: kpuk
Дата сообщения: 13.12.2006 10:22
А попробуй Morrowind запускать через этот скритп, тоесть чтоб игра была дочерним окном скрипта.
Автор: RVM_aka_Vasil
Дата сообщения: 14.12.2006 05:29
Не получается почему-то. Создал я следующий скрипт:

Run("morrowind.exe", "D:\Program Files\Bethesda Softworks\Morrowind", @SW_MAXIMIZE)

А когда его запускаю, AutoIT выдает сообщение: "Не удается найти указанный файл". Что я неправильно сделал?
Автор: iglezz
Дата сообщения: 14.12.2006 11:56
RVM_aka_Vasil

так получится:
Код: Run("D:\Program Files\Bethesda Softworks\Morrowind\morrowind.exe", "", @SW_MAXIMIZE)
Автор: RVM_aka_Vasil
Дата сообщения: 14.12.2006 13:50
Точно, получилось! Игра при помощи этого /см.выше/ скрипта запускается. Но проблема перемещения мышки с помощью AutoIT в заданное положение экрана в игре Morrowind осталась. То есть запускаю с помощью скрипта игру, потом в игре горячей клавишей, "повешанной" на скрипт перемещения мыши, запускаю этот скрипт и... мышь убегает не туда куда ей положено. Может что-то еще можно попробовать?
Автор: kpuk
Дата сообщения: 14.12.2006 14:28
RVM_aka_Vasil
Слушай а ты по координатам перемещаеш?
Может в системе разрешение 1024х768, а в игре 800х600. Может тут покапать?
Автор: RVM_aka_Vasil
Дата сообщения: 14.12.2006 17:19
Да, перемещаю по координатам. Разрешение и в системе и в игре одинаковое - 1024х768. Сам скрипт компилирован из формата .au3 в .ехе файл. Но это же не могло повлиять?!
Автор: kpuk
Дата сообщения: 14.12.2006 20:07
RVM_aka_Vasil попробуй в самом начале программы вставить
Opt("MouseCoordMode", 1)
и проверь что получится!
Автор: RVM_aka_Vasil
Дата сообщения: 15.12.2006 06:33
Получилось то же самое. В системе этот скрипт работает как надо, а в игре мышь хаотично куда-то убегает. Может скрипт неправильный? У меня он вот так выглядит:

Opt("MouseCoordMode", 1)
MouseClick("left", 500, 550)
Автор: ViSiToR
Дата сообщения: 15.12.2006 09:03
RVM_aka_Vasil
А что нажать то надо? есть другие способы нажатия чего то (смотря чего), которые иногда приходятся немножко эффективнее чем MouseClick()... например, есть ControlClick()... - для этого нужно узнать заголовок окна, и класс объекта для нажатия (кнопки, чекбокса и т.д).
Автор: RVM_aka_Vasil
Дата сообщения: 15.12.2006 11:02
Нажать нужно многое и, прежде всего, строки в диалогах. Я заметил, что почти все окна в Морровинде появляются в одном и том же месте, вот и пытаюсь настроить autoit чтобы он двигал и щелкал мышкой как мне нужно. Почитал из того что у меня есть про функцию ControlClick().. и мало что понял. Так, например, если мне нужно щелкнуть в окне диалога конкретную строку, то как примерно скрипт должен выглядеть?
Автор: kpuk
Дата сообщения: 15.12.2006 13:24
ViSiToR
RVM_aka_Vasil
А вы уверенны что Au3Info.exe сможет вычислить чтото в такой игре??
В некоторых случаях единственный выход - MouseMove и MouseClick

Автор: RVM_aka_Vasil
Дата сообщения: 15.12.2006 17:20
Я то вообще ни в чем не уверен. В autoIT я новичок - новее не бывает! Надеюсь на вашу помощь, Специалисты!
Автор: ViSiToR
Дата сообщения: 16.12.2006 00:01
RVM_aka_Vasil

Цитата:
если мне нужно щелкнуть в окне диалога конкретную строку, то как примерно скрипт должен выглядеть?

Что значит строку? это кнопка, поле ввода, надпись, чекбокс?
Чтобы определить где нужно кликнуть (т.е чтобы это было понятно для команды ControlClick), нужно воспользоваться инструментом Au3Info (набери в поиске справки au3info), и узнать класс (ControlID) объекта. Но, я полагаю что для этого нужно каким то образом включить игру не в полноэкранном режиме, чтобы когда запускаешь Au3info.exe, можно было навести курсор на нужны объект, и посмотреть информацию в окошке инструмента (au3info) у надписи Control ID: или у ClassNameNN:

Возьмём простой пример:

-Чтобы прописать имя какой то программы в окошке “Выполнить” (из меню “Пуск”), и нажать кнопку ОК, нужно скрипт писать так:


Код:
$Title = "Запуск программы"
$ProgName = "notepad.exe"

;Посылаем сочетание клавиш для вызова окна "Выполнить"
Send("#r")

;Ждём появление окна
WinWait($Title, "", 5)

;Вставляем в текстовое поле имя программы (берётся из переменной $ProgName)
ControlCommand($Title, "", "Edit1", "EditPaste", $ProgName)

;Нажимаем кнопку OK
ControlClick($Title, "", "Button2")
Автор: Denis_Kokyev
Дата сообщения: 16.12.2006 10:39
Проштудировал хелп но так и не нашел, как в одну переменную несколько строчек запихнуть.
Пробовал так - не вышло:
$string4=($string1 + $string2 + $string3)
Автор: kpuk
Дата сообщения: 16.12.2006 11:37
$string4=$string1 & $string2 & $string3
Автор: RVM_aka_Vasil
Дата сообщения: 16.12.2006 14:11
ViSiToR

Не получается с au3info. В поле ClassNameNN: Morrowind1. Причем в любой строке диалога /это типа меню разговора с персонажем. Щелкаешь строку - получаешь ответ/. Поле Control ID пустое. Видимо Морровинд с помощью AutoIT не удастся настроить. В любом случае всем откликнувшимся на мою проблему - СПАСИБО!
Автор: Denis_Kokyev
Дата сообщения: 17.12.2006 03:24
kpuk
Ух, спасибо! Заработало!

{удалено}
Автор: ViSiToR
Дата сообщения: 17.12.2006 08:36
RVM_aka_Vasil

Цитата:
В поле ClassNameNN: Morrowind1

Попробуй так:


Код: ControlClick("", "", "Morrowind1")
Автор: Denis_Kokyev
Дата сообщения: 17.12.2006 12:20
Вот хотел про что ещё спросить. Уже очень давно я хотел найти способ
вносить изменения именно в ветку рееста с уникальным SID. Мне
подсказали тулзу psgetsid.exe, которая показывает этот самый текущий
SID. Теперь вроде бы моя мечта осуществилась, вот в принципе код, с
помощью которого можно это осуществлять (может кому то это
пригодится):


Код: ;RunWait ( @Comspec & ' /C psgetsid.exe > 1.cfg', '', @SW_HIDE )
RunWait ( @Comspec & ' /C GetSID.bat', '', @SW_HIDE )

Global $defaultbrowser, $file, $string1, $string2, $string3, $string4, $string5, $string6, $sid, $line, $sum1, $sum2, $sum3, $sum4, $sum5

$file = FileOpen("sid.cfg", 0)
$string1="HKEY_USERS\"
$string2="\Software\Microsoft\Internet Explorer\Desktop\Components"
$string3="\Software\Microsoft\Internet Explorer\Main"
$string4="\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete"
$string5="\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{8856F961-340A-11D0-A96B-00C04FD705A2}\iexplore"
$string6="\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{D27CDB6E-AE6D-11CF-96B8-444553540000}\iexplore"

If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

$line= FileReadLine($file, 1)
$sid= StringTrimRight($line, 2)

$sum1= $string1 & $sid & $string2
$sum2= $string1 & $sid & $string3
$sum3= $string1 & $sid & $string4
$sum4= $string1 & $sid & $string5
$sum5= $string1 & $sid & $string6

RegWrite($sum1,'GeneralFlags',"REG_DWORD",0x00000000)

RegWrite($sum2,'Use FormSuggest',"REG_SZ",'no')
RegWrite($sum2,'FormSuggest Passwords',"REG_SZ",'no')

RegWrite($sum3,'AutoSuggest',"REG_SZ",'no')

RegWrite($sum4,'Count',"REG_DWORD",0x0000016a)
RegWrite($sum4,'Time',"REG_BINARY","d6070c0003000d000a00240038003c03")

RegWrite($sum5,'Count',"REG_DWORD",0x00000165)
RegWrite($sum5,'Time',"REG_BINARY","d6070c0003000d000a00240038005b03")

FileClose($file)
Автор: RVM_aka_Vasil
Дата сообщения: 17.12.2006 13:58
ViSiToR

Простите мне мою тупость, но с ControlClick мне наверно, не справится. Вот как, например, выглядит окно au3info в положении курсора мыши в первой строке диалога с одним из персонажей:

Press CTRL-ALT-F to freeze the display.

>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title:    Morrowind
Class:    Morrowind
Size:    X: 0 Y: -34 W: 1030 H: 780

>>>>>>>>>>> Mouse Details <<<<<<<<<<<
Screen:    X: 349    Y: 199
Cursor ID:    5

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

>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size:        X: 0 Y: 0 W: 1024 H: 768
Control ID:    
ClassNameNN:    Morrowind1
Text:        
Style:        0x50000000
ExStyle:        0x00000000

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


>>>>>>>>>>> Visible Window Text <<<<<<<<<<<

>>>>>>>>>>> Hidden Window Text <<<<<<<<<<<



А вот так во второй строке с этим же персонажем:

Press CTRL-ALT-F to freeze the display.

>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title:    Morrowind
Class:    Morrowind
Size:    X: 0 Y: -34 W: 1030 H: 780

>>>>>>>>>>> Mouse Details <<<<<<<<<<<
Screen:    X: 514    Y: 363
Cursor ID:    15

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

>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size:        X: 0 Y: 0 W: 1024 H: 768
Control ID:    
ClassNameNN:    Morrowind1
Text:        
Style:        0x50000000
ExStyle:        0x00000000

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


>>>>>>>>>>> Visible Window Text <<<<<<<<<<<

>>>>>>>>>>> Hidden Window Text <<<<<<<<<<<



При этом заголовки диалоговых окон с разными персонажами разные.

P.S.
У вас тут такие серьезные проблемы обсуждаются, а я с игрушками... Даже неловко как-то...

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

Предыдущая тема: Quintura Search


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.