Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Уж очень небольшой вопрос по С# Добавлено: 27.05.10 20:36  

Автор вопроса:  Uhehesh | Web-сайт: mda.net.ru
Ну, так как здесь не только VBNet обсуждают, но и другие языки, спрошу о С#.

Существуют ли какие-нибудь хорошие и простые в использовании компоненты доступа к icq для С#? Для VB.NET есть vbicq4, а вот для С# пока не нашёл. :(

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 27.05.10 21:11
По идее (изначальной идее .NET), все, что подходит к одному .NET-языку, подходит и к другому. Они между собой отличаются в основном синтаксисом, принцип - одинаковый. Так что по идее твоя вася подойдет, смекаешь?

Ответить

Номер ответа: 2
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #2
Добавлено: 27.05.10 21:32
Нет, моя всё ещё не смекает.
Мне, всё-таки, желательно штучку, созданную специально для C#, так как с этой ничего не получается. Вот, например, в VB.net есть icq.SendMessage, а при вводе подобного (вообще icq.*) в С# - ничего.

(Я в Шарпе, к тому же, э... 6 часов)

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 27.05.10 22:13
Так там сборку подключить нужно (знаешь где). Затем такое дело: в VB.NET ты в верху кода наверно включал пространство имен с помощью слова Implements (точно не знаю, звучит как-то так. Посмотришь в код - смекнешь). Например, Implements System.Windows.Forms. Так вот. В C# это делается так:
  1.  
  2. using System.Windows.Forms;


Вот. В твоем случае должно быть что-то типа
  1.  
  2. using ICQ;


Ну или как-то так. Посмотри примеры на VB.NET, проведи раста-аналогии, и тогда смекнешь.

Ответить

Номер ответа: 4
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #4
Добавлено: 27.05.10 22:27
Эх... Сложный я "поциент".
В коде VB.net-овского приложения наверху лишь Public Class Form1, а потом - переменные.
В коде Си-шарпа пробовал вставить и "using ICQ;", и "using vbicq4;", ничего не помогает.
В Си-шарпе увидел следующее в обозревателе объектов:
= vbicq4
 {} vbicq4
  @ vbicq4

А в этом @ vbicq4 я вижу уже всё необходимое: UIN, state, server, port, pass... вижу и DisConnect(), Connect() и т.д.
Но доступ к ним получить никак не могу.


Справка по использованию vbicq4 под VB: http://www.nakodim.ru/index.php?page=materials&section=im&m=vbicq4.howuse

Ответить

Номер ответа: 5
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #5
Добавлено: 27.05.10 23:04
Кто поможет решить проблему, тот получит символическую плату в 5 рублей и тому я буду вечно благодарен).
Смекаете? © VBDUnit

upd: блин, ни oscarlib, ни noscar не подходят - уж слишком они громоздкие.

Ответить

Номер ответа: 6
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #6
Добавлено: 28.05.10 00:13
не знаю чего у тя там нету, подключаешь библиотеку, объявляешь переменную vbicq4.vbicq4 icq = new vbicq4.vbicq4(); и все есть icq.SendMessage...

Ответить

Номер ответа: 7
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #7
Добавлено: 28.05.10 08:35
Ололо, спасибо! Есть Webmoney-кошелек? :-D

Ответить

Номер ответа: 8
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #8
Добавлено: 28.05.10 09:03
Хехе... следующий вопрос:
Подключение я уже реализовал.
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             icq.UIN = setUin.Text;
  4.             icq.pass = setPass.Text;
  5.             icq.connect(vbicq4.vbicq4.ICQ_Status.online);
  6.         }


Это было несложно. Хотелось бы узнать, как сделать, чтобы, например, при подключении выполнялся следующий код:
  1. MessageBox.Show("онлайн")


То есть, нужно объявить... но как? :(

Ответить

Номер ответа: 9
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 28.05.10 09:53
В C# к событиям можно динамически добавлять код. Типо так:
  1.  
  2. button1.Click+=delegate {
  3. MessageBox.Show("Вы нажали на кнопку");
  4. };


Этот код добавляет код в событие Click. Во как. У тебя там должно быть (по идее) событие, которое вызывается при потключении. OnConnected или что-то типа того.

Ответить

Номер ответа: 10
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #10
Добавлено: 28.05.10 11:30
Ммм...

Читаю с VB:
  1. Private Sub icq_onConnect() Handles icq.onConnect


Значит, называется icq.onConnect. Ввожу подобное примеру VBDUnit... ошибка!
Паника. Ужас. Страх...

...
Оказывается, я забыл, что С-языки чувствительны к регистру. :) Спс

Ответить

Номер ответа: 11
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #11
Добавлено: 28.05.10 11:53
Итак... продолжим наши заморочки и увеличим ставку до 6 рублей. :)

В VB следующее, например:
  1. If message = "help" Then 'если сообщение, которое пришло = "help", то...
  2. icq.sendmessage(myuin, "WTF?!") 'отправить сообщение "WTF?!" на номер icq из переменной myuin
  3. End If 'спать спокойно


Как мне получить доступ к пришедшему сообщению - message? Э...

Ответить

Номер ответа: 12
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #12
Добавлено: 28.05.10 15:21
В смысле? Твой код в переводе на C#:
  1. if (message == "help") icq.sendmessage(myuin, "WTF?!");

Ответить

Номер ответа: 13
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #13
Добавлено: 28.05.10 15:35
Хохо, так я это как раз таки и понимаю. Прекрасно.
Но куда это вставлять? Пытался вот так:
  1.   icq.onMessage += delegate
  2.         {
  3.           (тут всякая фигня)
  4.         };


Но он не находит message (по IntelliSense видно). Юзал конвертер VB.net -> C#, получил следующее:
  1.   private void icq_onMessage(string uin, string message)
  2.             {
  3.                 if (InvokeRequired)
  4.                 {
  5.                     this.BeginInvoke(new MsgDelegate(icq_onMessage), new object[] { uin, message });
  6.                     return;
  7.                 }
  8.  
  9.                 if (message == "а")
  10.                 {
  11.                     MessageBox.Show("б");
  12.                 }
  13.  
  14.             }

...не помогает.

Ответить

Номер ответа: 14
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #14
Добавлено: 28.05.10 17:20
может все-таки стоит изучить язык, на котором пишешь, а то так и будешь каждую строку спрашивать, их там еще много...
пишешь
  1. icq.onMessage += new vbicq4.vbicq4.onMessageEventHandler(icq_onMessage); //где-нить где инициализация переменной
  2.  
  3. void icq_onMessage(string uin, string message)
  4. {
  5.     //код
  6. }



также и с onConnect'ом
  1. icq.onConnect += new vbicq4.vbicq4.onConnectEventHandler(icq_onConnect);
  2. void icq_onConnect()
  3. {
  4.    //код
  5. }

Ответить

Номер ответа: 15
Автор ответа:
 Uhehesh



Вопросов: 4
Ответов: 42
 Web-сайт: mda.net.ru
 Профиль | | #15
Добавлено: 28.05.10 17:33
Всё работает! Сначала не работало, потом инициализацию переменных вставил в самое начало кода Form1.

может все-таки стоит изучить язык, на котором пишешь

Изучаю потихоньку. :)

а то так и будешь каждую строку спрашивать, их там еще много...

Немного, работу с файлами я уже реализовал, она уже готова и 99% работает. Начну переносить код с VB на С#. Останется лишь узнать, как закачивать файлы на сервер (аналог My.Computer.Network.UploadFile из VB.net) - узнаю на других сайтах - и всё будет готово. ;)

И снова вопрос (уже не по теме): Skywalker, у тебя есть webmoney-кошелёк? :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам