Что нового

Отправка текста в неактивное окно

IceTiger

Новичок
Сообщения
7
Репутация
0
Версия AutoIt:v3.3.8.1

Описание: вобщем нужен скрипт для отправки текста в неактивную (или свёрнутую) программу. Причём после вставки текста в текстбокс происходила нажатие enter(ну или просто чтоб текст отправлялся).

Примечания: Слышал что это можно организовать с помощью хендлов, но с этой программой (autoit) некогда неработал, да и программирование учил в технаре и всё забыл уже=(
Если что программу (в которую надо отпровлять текст) могу скинуть на почту или через скайп.
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
InnI Реакций никаких нет, ошибок тоже. Мб он пытается вставить кудато нетуда?
как можно проверить куда он пытается вставить? или мб можно узнать както адрес текстбокса?
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
IceTiger [?]
можно узнать както адрес текстбокса?
Запустите утилиту Au3Info.exe. Перетащите "Finder Tool" на поле ввода. Предоставьте информацию с вкладки "Summary".
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
Код:
>>>> Window <<<<
Title:	MT [StormCraft]
Class:	TfrmMain
Position:	453, 175
Size:	460, 417
Style:	0x16CA0000
ExStyle:	0x00010100
Handle:	0x00030324

>>>> Control <<<<
Class:	TEdit
Instance:	1
ClassnameNN:	TEdit1
Name:	
Advanced (Class):	[CLASS:TEdit; INSTANCE:1]
ID:	197422
Text:	
Position:	19, 337
Size:	415, 21
ControlClick Coords:	76, 11
Style:	0x540100C0
ExStyle:	0x00000200
Handle:	0x0003032E

>>>> Mouse <<<<
Position:	551, 548
Cursor ID:	0
Color:	0xFFFFFF

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Общение
ChatToolBar
[13:45] Добро пожаловать в мир 
[13:45] Seven Signs: This is the seal validation period.
[13:45] SYSTEM: Приветствуем Вас 
[13:45] SYSTEM: Желаем приятной игры.
[13:45] 9ICBC: 44 6го
[13:45] qpenuks: 78 ТХ ЛФ КЛАН

StormCraft | Warsmith | 72 lvl


>>>> Hidden Text <<<<
Вход в игру
Evermore
Закрыть
Войти
icecraft
Загрузка...
ps
Торговля
Информация
Клан
както так) чтото спойлера(чтоб спрятать текст) я ненашёл.
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Замените в скрипте "Edit1" на "TEdit1".
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
Скрипт работает. Спасибо. При отсылки сообщения русской раскладкой выводит в окно знаки вопроса
Код:
[15:24] StormCraft: ????????
, английской всё норм.
Подскажите как организовать отправку 2ух собщений интервалом пол секунды, через каждые 30 секунд?
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
IceTiger [?]
Подскажите как организовать отправку 2ух собщений интервалом пол секунды, через каждые 30 секунд?
Используйте на свой страх и риск, т.к. спамить нехорошо.
Код:
$text1 = "первое сообщение"
$text2 = "второе сообщение"

Do
  ControlSend("MT [StormCraft]", "", "TEdit1", $text1 & "{enter}")
  Sleep(500) ; пол секунды
  ControlSend("MT [StormCraft]", "", "TEdit1", $text2 & "{enter}")
  Sleep(30000) ; 30 секунд
Until 0
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
InnI В меру всё полезно)
Сделал форму в Koda Form Designer, на форме разместил строку input1. Вот немогу понять как привязать к переменной $text1, т.е. чтобы отпровляймый текст брался из input1. Как это осущиствить?
Или может быть проще осуществить чтоб текст брался из текстового или ini файла?
П.С. справка к Koda Form Designer почемуто неработает.
Вот код формы
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 496, 39, 192, 129)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 481, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
IceTiger
Во-первых, код AutoIt нужно обрамлять тегами [ autoit ], а не [ code ]. Правила тут жёсткие.
Во-вторых, раз уж вы уже начали разбираться сами, то этот вопрос лучше задавать в теме "AutoIt для новичков". А лучше использовать поиск по форуму - таких вопросов уже много было.
В-третьих, не пойму, зачем вы делаете окно со строкой ввода, если это уже сделано в той программе ?! :stars:
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
InnI,
1. ок, буду иметь ввиду.

2. попробую поискать. просто раз уж пошла такая "пьянка" то я наделся на вашу помощь)
3. Всё очень просто. В форме будет размещать сообщение торговли, которое дальше будет передаваться в указанную мной программу. Т.е. я забил в форму сообщение запустил цикл, и ушёл по своим делам, ну или перекусить.
И я так понял что это всё можно ещё скомпилировать в exeшник, что упрощает задачу)

А что можете сказать по этому поводу:
Скрипт работает. Спасибо. При отсылки сообщения русской раскладкой выводит в окно знаки вопроса

Код:
[15:24] StormCraft: ????????, английской всё норм.
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
IceTiger [?]
ок, буду иметь ввиду.
Нужно не только иметь в виду, но и исправить (отредактировать) то сообщение. Иначе мы оба получим предупреждение.
наделся на вашу помощь
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 536, 39, 192, 129)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 481, 21)
$Button1 = GUICtrlCreateButton("Send", 496, 8, 32, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
  $nMsg = GUIGetMsg()
  Switch $nMsg
    Case $GUI_EVENT_CLOSE
      Exit
    Case $Button1
      ConsoleWrite(GUICtrlRead($Input1) & @CRLF)
      ControlSend("MT [StormCraft]", "", "TEdit1", GUICtrlRead($Input1) & "{enter}")
  EndSwitch
WEnd

А что можете сказать по этому поводу:
Поиск рулит:
http://autoit-script.ru/index.php/topic,7963.0.html
http://autoit-script.ru/index.php/topic,314.0.html
http://autoit-script.ru/index.php/topic,4896.0.html
 
Автор
I

IceTiger

Новичок
Сообщения
7
Репутация
0
InnI, большое вам спасибо. Конечно чем дальше в лес тем больше вопросов. Пойду переваривать матерял)
 
Верх