Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Вернуть текст окна сообщения ICQ или QIP... (http://forum.oszone.net/showthread.php?t=146981)

sashadeg 03-08-2009 14:59 1184352

Вернуть текст окна сообщения ICQ или QIP...
 
Нужно вернуть текст входящих сообщений любого из этих клиентов... Лично у меня через ControlGetText не получилось...
Может ктонибудь знает другой способ???

amel27 03-08-2009 15:31 1184401

Цитата:

Цитата sashadeg
ICQ или QIP »

много всяких... конкретно редакция/версия

sashadeg 03-08-2009 15:33 1184404

Цитата:

Цитата amel27
Цитата sashadeg:
ICQ или QIP »
много всяких... конкретно редакция/версия »

А какая у Вас есть, о той и опишите... Я побывал КИП Инфиум, ICQ LIte. (последние версии)

Belfigor 03-08-2009 17:22 1184523

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

sashadeg 03-08-2009 19:10 1184588

Мне нужно вот что.

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

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

Medic84 03-08-2009 20:14 1184635

А интересная идея удаленного запуска.... Можно будет подумать... Сейчас что нибудь придумаем.....

sashadeg 03-08-2009 21:35 1184694

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

Belfigor 04-08-2009 16:29 1185402

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

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

beve 04-08-2009 21:47 1185662

Цитата:

Цитата sashadeg
Может ктонибудь знает другой способ??? »

Может этот поможет: http://forum.ru-board.com/topic.cgi?...33&topic=10280

sashadeg 04-08-2009 23:45 1185754

beve, я так и не понял, у них так "финалки" и не получилось? а то я обрадовался, что ктото уже придумал это... =)

amel27 05-08-2009 08:51 1185962

Цитата:

Цитата sashadeg
через 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 1187481

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

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

araneon 07-08-2009 16:01 1188280

Belfigor Если тебе нужно читать из заранее известных номеров то можно тупо отслеживать обновления в файлах лога и читать оттудова.
А примерчик не подскажешь???

Nik_rus 07-08-2009 16:10 1188287

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

Nik_rus 07-08-2009 16:29 1188311

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

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

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

Fraks 06-09-2009 15:26 1212707

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

Medic84 06-09-2009 15:53 1212718

А это по твоему что???

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

Fraks 06-09-2009 16:04 1212726

Цитата:

Цитата Medic84
А это по твоему что???
http://forum.oszone.net/post-1185962-11.html »

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

Medic84 06-09-2009 18:17 1212785

Перед тобой наичистейшая функция для получения текста из окна QIP в чем проблема то?

Fraks 06-09-2009 22:39 1212928

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

Medic84 07-09-2009 14:27 1213338

Цитата:

Цитата Fraks
Как мне сделать чтоб она из аськи текст брала??? »

Код:

$xWnd = WinGetHandle("[CLASS:TfrmTabber.UnicodeClass]")
$hCtr = ControlGetHandle($xWnd, "", "TRichView1")

Это надо поменять
Цитата:

Цитата Fraks
Что это за библиотека "kernel32.dll"???? »

Это системная билиотека. Находится в папке system32


Время: 15:40.

Время: 15:40.
© OSzone.net 2001-