как из Excel открыть окно ICQ-клиента для поиска конкретного пользователя?
Модератор: Naeel Maqsudov
Есть еще какие либо варианты кода?
Аууу!!!
Девелоперы!!!Проблема то не решена
Девелоперы!!!Проблема то не решена
Хех.. Судя по некоторым последним Вашим сообщениям, мой вариант работал частично... но происходило следующее
- icq запускался, но в соответствии с настройками, появлялся только диалог логина... и все (или логин происходил все-таки, в отличие от ручного запуска Icq?)
То, что мое предложение не является универсальным - это ясный пень...
Итак... на чем конкретно останавливается мое предложение?
- остается открытым диалог логина с предвведенным значением номера текущего пользователя
или
- дилог логина закрывается, логин происходит, но окно поиска других пользователей не открывается
или
- не понятно что вообще проиходит... icq вроде запускается, но запуск ни чем заметным не отличается от ручного запуска icq
Хотите ли Вы довести этот путь до ума или Вам он не подходит в принципе?
И еще одни вопрос: Вы ничего не сказали о предложении воспользоваться поиском пользователей на странице сайта icq.com - Вы не видите возможным пользоваться этим вариантом в принципе или просто не любите отвечать на подобные предложения?
- icq запускался, но в соответствии с настройками, появлялся только диалог логина... и все (или логин происходил все-таки, в отличие от ручного запуска Icq?)
То, что мое предложение не является универсальным - это ясный пень...
Итак... на чем конкретно останавливается мое предложение?
- остается открытым диалог логина с предвведенным значением номера текущего пользователя
или
- дилог логина закрывается, логин происходит, но окно поиска других пользователей не открывается
или
- не понятно что вообще проиходит... icq вроде запускается, но запуск ни чем заметным не отличается от ручного запуска icq
Хотите ли Вы довести этот путь до ума или Вам он не подходит в принципе?
И еще одни вопрос: Вы ничего не сказали о предложении воспользоваться поиском пользователей на странице сайта icq.com - Вы не видите возможным пользоваться этим вариантом в принципе или просто не любите отвечать на подобные предложения?
Всякое решение плодит новые проблемы.
Все вы правильно говорите,Genyaa. Но, как я уже говорила, у всех пользователей стоит разный ICQ-клиент.
Предложенный вами код рабоате следующим образом. Поскольку запускается qip.exe (мой ICQ-клиент), то открывается окно входа в аську, т.е. высвечивается мой номер и запрашивается пароль. После входа ничего более не происходит. Поэтому мне и не понятно для чего же используется параметр User. К тому же проца SendKeys должна выполнять свои действия в соответствии с заданными параметрами. Почему этого не происходит?
Конечно же, хотелось бы довести это дело до ума.
Предложенный вами код рабоате следующим образом. Поскольку запускается qip.exe (мой ICQ-клиент), то открывается окно входа в аську, т.е. высвечивается мой номер и запрашивается пароль. После входа ничего более не происходит. Поэтому мне и не понятно для чего же используется параметр User. К тому же проца SendKeys должна выполнять свои действия в соответствии с заданными параметрами. Почему этого не происходит?

Во-первых, я не знаю как эта система поиска работает.Во-вторых,никто в нашем офисе,думаю, тоже...ну или многие. К тому же фича, которую мне надо реализовать интересна именно тем, что делает все через ICQ-клиент.Genyaa писал(а):
И еще одни вопрос: Вы ничего не сказали о предложении воспользоваться поиском пользователей на странице сайта icq.com - Вы не видите возможным пользоваться этим вариантом в принципе или просто не любите отвечать на подобные предложения?
Если у всех разный клиент, то либо нужно под каждый клиент писать процедуру управления этим клиентом, либо писать релизацию собственного клиента под VBA. Ни для того, ни для другого у меня не хватит ресурсов.LOKI-85 писал(а):Все вы правильно говорите,Genyaa. Но, как я уже говорила, у всех пользователей стоит разный ICQ-клиент.
SendKeys посылает коды нажатий клавиш клавиатуры в активное в этот момент приложение. Если после активации вашего открывается диалог логина, и чтобы логин произошел нужно нажать на Enter, можно добавить в код:Предложенный вами код рабоате следующим образом. Поскольку запускается qip.exe (мой ICQ-клиент), то открывается окно входа в аську, т.е. высвечивается мой номер и запрашивается пароль. После входа ничего более не происходит. Поэтому мне и не понятно для чего же используется параметр User. К тому же проца SendKeys должна выполнять свои действия в соответствии с заданными параметрами. Почему этого не происходит?
SendKeys "{ENTER}", True
- первым из других SendKeys, сразу после shell
Пробуйте смелее.
Далее, ваш клиент должен иметь возможность как-то вызвать диалог поиска (в ICQ это клавиша F5) нажатием клавиш. Замените SendKeys "{F5}" на то, что нужно, чтобы вызвать это диалог Вашем клиенте. (См.Help по VBA для SendKeys чтобы узнать, какие обозначения нужно использовать в аргументах, чтобы релизовать посылку нажатий тех или иных, нужных для Вас клавиш.)
И т.д.
Ну, можно было просто проверить, как работает поиск со странички ICQ и подумать, может быть это подошло... как-то... например, может быть можно было бы вставить в Excel форму, в которой отражалась бы эта страничка, как в браузере.. и с этой формой работали бы все... как миленькие... :-)Во-первых, я не знаю как эта система поиска работает.Во-вторых,никто в нашем офисе,думаю, тоже...ну или многие. К тому же фича, которую мне надо реализовать интересна именно тем, что делает все через ICQ-клиент.
Всякое решение плодит новые проблемы.
Это то все поняяяятно...я так и думала, что реализация происходит именно так(я про SendKeys). И в браузере смотрела данный поиск....но ничего из этого мне не помогает-))
В любом случае спасибо вам,Genyaa:-)))
Доброго времени суток. Подскажите, пожалуйста (наверное, Genyaa сможет мне помочь-)), а как задать параметры в браузере на icq.com такие как ICQ-Number? Genyaa, у вас есть реализация добавления пользователя в icq через браузер?
Заранее спасибо.
Заранее спасибо.
Я решила установить ICQLite и посмотрела как же это все работает у вас. У вас работает именно так как мне надо!Но если будет стоять QIP, то при запуске qip.exe происходит именно логин,таким образом,если он открыт,то происходит ошибка..не знаю как устранить , во-первых данную проблему. Во вторых запуск в кип происходит с попмощью нажатия и удерживания клавиш ctrl+shifrt+f , с чем тоже возникают трудности. Я и справку смотрела...ничего....
Что скажете?
Что скажете?
Поймите, что здесь нужно просто указать в SendKeys то, что требуется для запуска кип и вызова нужного диалога с помощью клавиш клавиатуры.LOKI-85 писал(а):Я решила установить ICQLite и посмотрела как же это все работает у вас. У вас работает именно так как мне надо!Но если будет стоять QIP, то при запуске qip.exe происходит именно логин,таким образом,если он открыт,то происходит ошибка..не знаю как устранить , во-первых данную проблему. Во вторых запуск в кип происходит с попмощью нажатия и удерживания клавиш ctrl+shifrt+f , с чем тоже возникают трудности. Я и справку смотрела...ничего....
Что скажете?
Например, если вызов диалога поиска происходит по Alt+Shift+f, то нужно написать:
SendKeys "%+f", True
% и + в этом случае будут указывать на нажатые Alt и Shift одновременно при нажатии f - и эта комбинация клавиш будет передана активному в данный момент приложению в Windows.
Если нужно для продвижения по диалогу логина нажатие на Enter, нужно добавить SendKeys "{ENTER}", True
Если нужно провинуться по дилогу табуляцией 3 раза, то пишем SendKeys "{TAB 3}", True
Если повторный запуск кип вызывает ошибку, то можно разрулить это в коде процедуры...
либо сначала попытаться активировать кип (делается с помощью AppActivate), полагая, что он уже запущен... и анализировать код завершения (Err.Number)
либо пытаться запустить кип по Shell и все равно анализировать код завершения.
Чтобы анализировать код завешения без того, чтобы прекращалась работа, нужно вписать директиву
On Error ....
, где на месте .... должно быть то, что Вам удобней - либо переход к следующей строке - resume next, либо переход на нужное место кода GoTo (метка) - см. Help по VBA.
Чтобы узнать код завершения, проверяйте значение Err.Number - если не ноль - то была какая-то ошибка... какая именно - подскажет конкретно этот номер кода завершения. Описание можно будет посмотреть по Err.Describtion.
Для работы с сайтом тоже нет больших проблем... можно все также сделать с помощью SendKeys
- вызвать по shell браузер - я бы сделал так:
n = shell("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " _
& "http://people.icq.com/people/about_me.php?uin=" & User)
- это вызвало бы сразу страничку пользователя по его номеру ICQ, далее
- сделать небольшую паузу, чтобы дать браузеру загрузиться и загрузить страничку:
Application.Wait Now()+TimeSerial(0,0,3)
- далее ищем поле добавления пользователя и нажимаем соответствующую ему ссылку:
SendKeys "^f", True
SendKeys "Add{ENTER}{TAB}", true
SendKeys "{ENTER}", True
По идее вроде должно сработать... я не проверял, но умозрительно должно вроде все получиться.
Всякое решение плодит новые проблемы.