как из Excel открыть окно ICQ-клиента для поиска конкретного пользователя?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

Доброго времени суток всем!
Стоит такая проблема. Необходимо написать макрос, котрый бы открывал окно "Добавить \найти пользователей" ICQ-клиента. Номер аськи клиента будет передаваться как параметр (находится в конкретной ячейке листа). В принципе нужна та же схема работы, что и гиперссылки в Excel. При клике на них (типа adm@mail.ru) открывается окно TheBat или outlook. Очень нужно. Всем спасибо!
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

Никому неинтересен данный топик???Людиииии!!help!
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

Это сложный вопрос или как?
Genyaa
Сообщения: 310
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

Без хиторостей и заморочек... у меня получилось так:

Код: Выделить всё

Sub test()
    Call aICQ("1234459")
End Sub

Sub aICQ(User As String)
    Dim IcqApp As Integer
    IcqApp = Shell("C:\Program Files\ICQLite\ICQLite.exe")
    SendKeys "{F5}", True
    SendKeys User, True
    SendKeys "{ENTER}", True
End Sub
Всякое решение плодит новые проблемы.
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

Все замечательно. Спасибо. Но только как быть, если на клиентском месте стоит, например, Qip, или &rq? Дело в том, что файл экселевский используется многими пользователями, поэтому нужно его все таки не привязывать к конкретному Icq-приложению.
Genyaa
Сообщения: 310
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

Я не пользуюсь и никогда не видел, как работают другие ICQ-подобные клиенты... можно пойти по пути реализации процедур под каждый такой клиент... но дело это будет неблагодарное. как мне кажется... Может проще было бы открывать и работать со страницей поиска людей в браузере?

http://people.icq.com/people/
Всякое решение плодит новые проблемы.
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

И еще вопрос к вам, Genyaa. Если в данный момент ICQ-клиент уже подключен,
то в принципе нет необходимости авторизовываться.
Как открыть сразу вкладку "Добавить/найти пользователей"?
К тому же в приведенном вами кодом параметр процедуры aICQ не используется. По крайней мере мы тут потестили и у нас по умолчанию всегда открывается наш номер:-)
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

И кстати сразу всплывает ответ на ваше предложение работать со страницей посика в браузере. Поскольку требуется по сути автоматизация процесса добавления человека в список контактов через Excel, поскольку данные все хранятся там.
Genyaa
Сообщения: 310
Зарегистрирован: 11 окт 2006, 17:24
Откуда: Moscow
Контактная информация:

LOKI-85 писал(а):И еще вопрос к вам, Genyaa. Если в данный момент ICQ-клиент уже подключен, то в принципе нет необходимости авторизовываться. Как открыть сразу вкладку "Добавить/найти пользователей"?
Смотря что именно Вы подразумеваете под словом "авторизовываться" или как у Вас настроен icq... shell в процедуре играет двоякую роль:
- если icq еще не запущена - она запускается и
- если icq не активна - она активируется.

Авторизация у меня на компьютере проходит автоматически (так настроен icq), т.е. при запуске icq не спрашивает имя пользователя и пароль, а входит с этими параметрами по умолчанию. Если у Вас это не так, подправьте процедуру под свои нужды (или ищите другие алгоритмы).
К тому же в приведенном вами кодом параметр процедуры aICQ не используется. По крайней мере мы тут потестили и у нас по умолчанию всегда открывается наш номер:-)
Как это не используется?! В процедуру aICQ передается параметр User (строковая переменная), которая используется во второй по порядку директиве SendKeys... т.к. какая строка находится в переменной User, которая и направляется в диалог поиска (который у меня активируется в ICQ по F5). Какое значение будет присвоено аргументу при вызове процедуры aICQ, такое и будет использоваться в процедуре.
Всякое решение плодит новые проблемы.
LOKI-85
Сообщения: 120
Зарегистрирован: 15 янв 2007, 17:34

Genyaa писал(а):

Как это не используется?! В процедуру aICQ передается параметр User (строковая переменная), которая используется во второй по порядку директиве SendKeys... т.к. какая строка находится в переменной User, которая и направляется в диалог поиска (который у меня активируется в ICQ по F5). Какое значение будет присвоено аргументу при вызове процедуры aICQ, такое и будет использоваться в процедуре.
Да. Интуитивно понятно для чего она используется. Но если ее убрать и просто выполнить код то все работает-))И автоматически вызывается окно аськи с моим настроенным номером почему то.
А аська у меня не такая, про которую вы говорите.Автоматически не логится...парользапрашивает...и это ведь как настроить...увы код не универсален. В вашем случае он подходит. А в моем к сожалению нет 6-(((
Ответить