Вопрос по VB
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Вопрос по VB - 2010-02-24 19:10:37.956666
|
|
|
marcuis
Сообщений: -21
Оценки: 0
Присоединился: 2009-10-01 21:05:30.400000
|
Всем добрый день! Народ подскажите плз, что надо исправить в ICQ боте, чтоб он, когда в моей проге вводили логг-пасс и нажимали старт, отправлял эти данные на аську. Т.е. там система такая, он коннектится на левую аську и с неё уже отсылает эти данные на мою. Заранее спасибо! Вот исходник ICQ бота 'Данные и структуры
Const BuffSize = 10 'размер буфера отправки (очередь)
'пользовательский типо уин/сообщение
Private Type UIN_MSG
UIN As String
MSG As String
End Type
Dim Buff(BuffSize) As UIN_MSG 'собственно сама очередь
'загрузка формы
Private Sub Form_Load()
Timer1.Interval = Int(text_ping) 'присваиваем интервал
Timer2.Interval = Int(text_send) 'присваиваем интервал
'присваиваем контролу uin и пароль бота
icq.UIN = "****" 'уин левой аськи
icq.Pass = "*****" 'пасс левой ськи
Timer1.Enabled = False 'выключаем пинг-таймер
Timer2.Enabled = True 'включаем рассыльщик
End Sub
'кнопка "включить"
Private Sub but_on_Click()
Timer1.Enabled = Not Timer1.Enabled 'включение/выключение таймера
If Timer2.Enabled Then
but_on.Caption = "Выключить"
Else
but_on.Caption = "Включить"
icq.CloseConnection
End If
End Sub
'Пинг- таймер
Private Sub Timer1_Timer()
If Int(text_ping) < 100 Then text_ping = 100 'исключаем нулевое значение и слишком быстрый пинг
Timer1.Interval = Int(text_ping) 'присваиваем интервал
'ïðîâåðêà êîííåêòà
If icq.KeepAlive = False Then
trace "Подключаемся..."
icq.login
End If
End Sub
'Добавление строки в текст бокс
Private Sub trace(ByVal text As String)
text_trace = text_trace & text & vbCrLf 'добавка
If Len(text_trace) > 16000 Then text_trace = "" 'проверка на переполнение
text_trace.SelStart = Len(text_trace) 'прокрутка
End Sub
'Событие "в сети"
Private Sub icq_Connected()
trace "Â ñåòè!" 'выводим текст
icq.SetStatus FFC 'делаем статус "готов поболтать"
End Sub
'событие ошибки подключения
Private Sub icq_ControlError(ByVal data As String)
trace "Ошибка: " & data
End Sub
'Пришло сообщение
Private Sub icq_MsgRecv(UIN As String, MSG As String)
'нашь ответ
Dim ans As String
Dim i As Integer
ans = ""
'=================== обработка команды ========================
Select Case MSG
'условия
Case "!help": ans = ReadFile(App.Path & "\help.txt") 'отправляем содержимое файла help.txt в ответ на команду !help
'case ...
'....
'... пишем тут обработку ваших команд ...
'...
Case Else 'если ни одно из условий не выполняется то:
ans = "Неивестная команда"
End Select
'=================== добавляем ответ в буфер ==================
'перебираем буфер
For i = 0 To BuffSize
'если нашли место:
If Buff(i).UIN = "" Then
Buff(i).UIN = UIN 'забиваем uin на который отослать
Buff(i).MSG = ans 'сабиваем в буфер сообщение
Exit For 'выходим из цыкла
End If
Next i
'добавляем текст
trace UIN & ": " & MSG
End Sub
'таймер рассылки
Private Sub Timer2_Timer()
Dim i As Integer
If Int(text_send) < 100 Then text_send = 100 'исключаем нулевое значение и слишком быструю отправку
Timer2.Interval = Int(text_send) 'присваиваем интервал
'ищем неотправленное сообщение в буфере
'перебираем буфер
For i = 0 To BuffSize
'если нашли:
If Buff(i).UIN <> "" Then
icq.SendMessage Buff(i).UIN, Buff(i).MSG 'отправляем
Buff(i).UIN = "" 'чистим
Buff(i).MSG = ""
Exit For 'выходим из цыкла
End If
Next i
End Sub
'============ вспомогательные функции ====================================
'запись в файл
Public Sub WriteFile(ddata As String, ffile As String)
Dim f As Long
f = FreeFile
Open ffile For Append As #f
Print #f, ddata
Close #f
End Sub
'чтение файла
Public Function ReadFile(sfile As String) As String
On Error GoTo err
Dim fff As Long
Dim sBuff As String
fff = FreeFile
ReadFile = ""
Open sfile For Input As #fff
Do While Not (EOF(fff))
Line Input #fff, sBuff
ReadFile = ReadFile & sBuff & vbCrLf
Loop
err:
Close #fff
End Function
т.е. подскажите, как его переделать, чтоб он делал только следующее - когда в моей проге вводят логг-пасс нажимают старт, бот сразу же эти данные отсылал мне на аську. Кому не сложно помогите плз. И ещё вопрос, это бот коннектится на левую ську, только когда нажимаешь кнопку "включить", а как сделать, чтоб когда запускали мою прогу, он автоматически коннектился сразу
|
|
|
RE: Вопрос по VB - 2010-02-24 19:32:15.816666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: marcuis Народ подскажите плз, что надо исправить в ICQ боте, чтоб он, …. Берёшь и пишешь сам своего бота.
|
|
|
RE: Вопрос по VB - 2010-02-24 20:00:40.806666
|
|
|
Lost_boy
Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
|
Это невозможно сделать ввиду твоей спецификации бота, он заточен под другой функциональный набор. Единственный выход самому написать.
|
|
|
|
|