Ildon
21.05.2010, 21:27
Видел очень много вопрос связанных со скайпом и решил написать для новичков
Для создания был использован С++ Builder , в Делфи будет все то же самое только не много другой синтаксис
1)
Для начала нужно установить ACTIVEX элемент для этого переходим на вкладку
Component->Import Activex Control и ищем там строку Skype4Com, выбираем ее и нажимаем Install
Если все прошло успешно то во в кладке ActiveX появится элемент
Кидаем его на форму , перед этим включаем Skype, он спросит разрешение на использование , говорим Да
2)
Кидаем на форму кнопку и прописываем в ее обрабочик такой код
Skype1->Attach(6,VARIANT_TRUE);
Это позволит нам подсоединится к Skype.
Теперь напишим цикл который и будет осуществлять рассылку
Кидаем Кнопку и 2 Мемо
В обрабочике кнопки пишем такую код
for(int x=0;x<Form1->Memo2->Lines->Count;x++) //Пока не кончатся строки в Мемо2, x - увеличивать
{
AnsiString atxt(Form1->Memo2->Lines->Strings[x]); //Берем ник из Мемо2 ковертируем в понятный формат
WideString wtxt(atxt);
BSTR txt=wtxt.c_bstr();
AnsiString btxt(Form1->Memo1->Text); //Берем текст из Мемо1 и ковертируем в понятный формат
WideString ztxt(btxt);
BSTR rtxt=ztxt.c_bstr();
Sleep(100);
Form1->Skype1->SendMessage(txt,rtxt); //Посылаем сообщение
}
ShowMessage("Я закончила");
Memo2 - ники тех люде которых будем спамить
Memo1 - Текст который будем рассылать
Вот и все, можно так же доделать количество сообщений отправляемых каждому юзеру и много чего другого, а пока я покажу пример простой звонилки
Кидаем на форму кнопку , едит и мемо
Обработчик кнопки
for(int x=0;x<Memo3->Lines->Count;x++) //Пока не кончатся строки в Мемо3, x - увеличивать
{
AnsiString atxt(Memo3->Lines->Strings[x]); //Берем ник из Мемо2 ковертируем в понятный формат
WideString wtxt(atxt);
BSTR txt=wtxt.c_bstr();
ICallPtr call=Skype1->PlaceCall(txt, L"", L"", L""); //Звоним
//Продолжительность звонка
AnsiString f=Edit1->Text;
int time=GetTickCount();
while((GetTickCount()-time)<StrToInt(f*1000))
{
Application->ProcessMessages();
}
call->Finish(); //Бросить трубку
Sleep(1000);
}
В едит находится время через которое нужно оборвать звонок и начать новый
В мемо список людей которым звонить
Эту вещь можно не писать если вы делаете в отдельном потоке
Она лучше чем Sleep потому как форма не застывает.
int time=GetTickCount();
while((GetTickCount()-time)<StrToInt(f*1000))
{
Application->ProcessMessages();
}
Всем спасибо кто прочел , если есть вопросы пишите всем отвечу
Для создания был использован С++ Builder , в Делфи будет все то же самое только не много другой синтаксис
1)
Для начала нужно установить ACTIVEX элемент для этого переходим на вкладку
Component->Import Activex Control и ищем там строку Skype4Com, выбираем ее и нажимаем Install
Если все прошло успешно то во в кладке ActiveX появится элемент
Кидаем его на форму , перед этим включаем Skype, он спросит разрешение на использование , говорим Да
2)
Кидаем на форму кнопку и прописываем в ее обрабочик такой код
Skype1->Attach(6,VARIANT_TRUE);
Это позволит нам подсоединится к Skype.
Теперь напишим цикл который и будет осуществлять рассылку
Кидаем Кнопку и 2 Мемо
В обрабочике кнопки пишем такую код
for(int x=0;x<Form1->Memo2->Lines->Count;x++) //Пока не кончатся строки в Мемо2, x - увеличивать
{
AnsiString atxt(Form1->Memo2->Lines->Strings[x]); //Берем ник из Мемо2 ковертируем в понятный формат
WideString wtxt(atxt);
BSTR txt=wtxt.c_bstr();
AnsiString btxt(Form1->Memo1->Text); //Берем текст из Мемо1 и ковертируем в понятный формат
WideString ztxt(btxt);
BSTR rtxt=ztxt.c_bstr();
Sleep(100);
Form1->Skype1->SendMessage(txt,rtxt); //Посылаем сообщение
}
ShowMessage("Я закончила");
Memo2 - ники тех люде которых будем спамить
Memo1 - Текст который будем рассылать
Вот и все, можно так же доделать количество сообщений отправляемых каждому юзеру и много чего другого, а пока я покажу пример простой звонилки
Кидаем на форму кнопку , едит и мемо
Обработчик кнопки
for(int x=0;x<Memo3->Lines->Count;x++) //Пока не кончатся строки в Мемо3, x - увеличивать
{
AnsiString atxt(Memo3->Lines->Strings[x]); //Берем ник из Мемо2 ковертируем в понятный формат
WideString wtxt(atxt);
BSTR txt=wtxt.c_bstr();
ICallPtr call=Skype1->PlaceCall(txt, L"", L"", L""); //Звоним
//Продолжительность звонка
AnsiString f=Edit1->Text;
int time=GetTickCount();
while((GetTickCount()-time)<StrToInt(f*1000))
{
Application->ProcessMessages();
}
call->Finish(); //Бросить трубку
Sleep(1000);
}
В едит находится время через которое нужно оборвать звонок и начать новый
В мемо список людей которым звонить
Эту вещь можно не писать если вы делаете в отдельном потоке
Она лучше чем Sleep потому как форма не застывает.
int time=GetTickCount();
while((GetTickCount()-time)<StrToInt(f*1000))
{
Application->ProcessMessages();
}
Всем спасибо кто прочел , если есть вопросы пишите всем отвечу