Войти

Показать полную графическую версию : Вернуть текст окна сообщения ICQ или QIP...


Страниц : [1] 2

sashadeg
03-08-2009, 14:59
Нужно вернуть текст входящих сообщений любого из этих клиентов... Лично у меня через ControlGetText не получилось...
Может ктонибудь знает другой способ???

amel27
03-08-2009, 15:31
ICQ или QIP »много всяких... конкретно редакция/версия

sashadeg
03-08-2009, 15:33
Цитата sashadeg:
ICQ или QIP »
много всяких... конкретно редакция/версия »
А какая у Вас есть, о той и опишите... Я побывал КИП Инфиум, ICQ LIte. (последние версии)

Belfigor
03-08-2009, 17:22
Если тебе нужно читать из заранее известных номеров то можно тупо отслеживать обновления в файлах лога и читать оттудова.

sashadeg
03-08-2009, 19:10
Мне нужно вот что.

Например:
Пришло соощение с текстом "run" - запуск run.exe

То есть отследить приход сообщения и выполнить КОНКРЕТНУЮ функцию.... Это возможно?

Medic84
03-08-2009, 20:14
А интересная идея удаленного запуска.... Можно будет подумать... Сейчас что нибудь придумаем.....

sashadeg
03-08-2009, 21:35
Не так давно я нашел плагин для кипа, который управляет компьютером через сообщения от конкретного пользователя... Автор плагина, сказал что работать над ним не будет и передал все авторские права и исходники МНЕ... Вот только в Делфи я ничего не понимаю =\
Поэтому и хотел чтонибудь подобное сделать на аутоите...

Belfigor
04-08-2009, 16:29
Еще проще, если от конкретного пользователя то:
FileReadLine ( filehandle or "filename" [, line] )

Я так через квип в свое время узнавал состояние программы одной на своем компьютере и отдавал небольшие приказы :)

beve
04-08-2009, 21:47
Может ктонибудь знает другой способ??? »
Может этот поможет: http://forum.ru-board.com/topic.cgi?forum=33&topic=10280

sashadeg
04-08-2009, 23:45
beve, я так и не понял, у них так "финалки" и не получилось? а то я обрадовался, что ктото уже придумал это... =)

amel27
05-08-2009, 08:51
через ControlGetText не получилось.. »по ходу работает только через буфер обмена, пример для квип инфиум:
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <SendMessage.au3>
#include <Clipboard.au3>

$xWnd = WinGetHandle("[CLASS:TfrmTabber.UnicodeClass]")
$hCtr = ControlGetHandle($xWnd, "", "TRichView1")
ConsoleWrite(_Control_GetText($hCtr) &@CRLF)

Func _Control_GetText($hWnd, $iStart = 0, $iEnd = -1)
Local $aRet, $pUnicode, $tData
If Not IsHWnd($hWnd) Then Return SetError(1, 0, False)

_SendMessage($hWnd, $EM_SETSEL, $iStart, $iEnd)
_SendMessage($hWnd, $WM_COPY, 0, 0)
_SendMessage($hWnd, $EM_SETSEL, -1, 0)

_ClipBoard_Open(0)
$pUnicode = _ClipBoard_GetDataEx($CF_UNICODETEXT)
_ClipBoard_Close()

$aRet = DllCall("kernel32.dll", "int", "lstrlenW", "ptr", $pUnicode)
$tData = DllStructCreate("wchar["& $aRet[0] &"]", $pUnicode)
Return DllStructGetData($tData, 1)
EndFunc

ADD: по ходу отладки вляпался в баг _ClipBoard_GetData() - там размер структуры задается статичным (8192 байт), в некоторых случаях (при малом размере данных) это приводило к обвалу скрипта - пока вышел из ситуации расчетом размера буфера через lstrlenW ... :idontnow:

ven00m
06-08-2009, 20:22
Есть готовое решение: R&Q + Do It Remotely (подключение CMD.exe, полный его функционал)
А через командную строку можно и скрипты пользовать.

P.S. Можно еще по IRC протоколу компом управлять, без использования стороннего софта только силами autoit.

araneon
07-08-2009, 16:01
Belfigor Если тебе нужно читать из заранее известных номеров то можно тупо отслеживать обновления в файлах лога и читать оттудова.А примерчик не подскажешь???

Nik_rus
07-08-2009, 16:10
На самом деле в 100 раз легче сделать все не с помощью программы, а с помощью протокола.
Я использовал XMPP aka Jabber, все работает на ура :jester:
Нароешь в том примере с ru-board, создание instant messaging бота.
Там есть jabbot2.au3 - на нем я собственно все и сделал.
Я кстати думал что эти XML чурки такие страшные которые бегают и раздают месаги, ан нет тут все простеньки и красивенько =) .
З.Ы. Все поставил в работу в фоновый режим, не мешатся чтобы.
З.Ы.Ы. Я правлю компом через мобилу ! (спс Bombus)

Nik_rus
07-08-2009, 16:29
Если мысли о миранде не дают жить - вот то что можно выудить из программы:
ЧЧ:ММ:СС: 1233
Присылается когда кто-то (не будем показывать пальцем :biggrin: ) посылает сообщение "1233".
Если оставить исккомое окно открытым и работать с ним - все будет как по маслу.
Но если нет - то я даже не знаю как его достать (Dllcallback ?)

ИМХО, юзать какой-то другой месенжер для отправки и приема месаги из автоит скрипта сильный изврат, кроме ICQ (там же атомные бомбы делают, там все секретно),
легче изучить протокол, найти нужные UDF'ки...

Нашел в базе миранды:
,_________________
j /// _____________Рў
)__/(С—)
/__/
/__/
:lol:

Fraks
06-09-2009, 15:26
Так у кого нибудь получилось вернуть текст из аськи???
Я написал уже практически всю программу для удаленного управления, но застрял на этом самом моменте когда надо чтоб последнее сообщение копировалось в командную строку!!!!....
Если получилось, напишите пожалуйста!!!!!
Я вот думал может эти сообщения из базы данных выудить.....Есть идеи???

Medic84
06-09-2009, 15:53
А это по твоему что???

http://forum.oszone.net/post-1185962-11.html

Fraks
06-09-2009, 16:04
А это по твоему что???
http://forum.oszone.net/post-1185962-11.html »

Я извиняюсь за тупой пост, но я начинающий программер и не совсем понимаю как єто использовать

Medic84
06-09-2009, 18:17
Перед тобой наичистейшая функция для получения текста из окна QIP в чем проблема то?

Fraks
06-09-2009, 22:39
Да не, это я понимаю...Как мне сделать чтоб она из аськи текст брала???....Там надо поменять название окна???
И еще одно. Что это за библиотека "kernel32.dll"????




© OSzone.net 2001-2012