PDA

Просмотр полной версии : Skype спаммер. Исходный код на Delphi.


Starsset
15.12.2015, 00:55
Написал Skype спаммер на быструю руку. Данная статья будет с минимальными пояснениями. Предлагаю ознакомиться с исходным кодом готового решения.

Для разработки я буду использовать модуль SKYPE4COMLib_TLB, его заранее нужно будет подключить.

Обработчик формы. Обращаю ваше внимание, что перед использованием значений профиля, я проверяю, не пустые ли они. Если этого не делать, может возникнуть ошибка. Так же значения никнейм и логин я помешаю в TStringList, дабы в дальнейшем было удобнее производить поиск.

procedure TSkypeForm.FormCreate(Sender: TObject);
var
I: Integer;
Friends: OleVariant;
begin
SkypeC := TSkype.Create(nil);

Friends := SkypeC.SearchForUsers('protect.777');

if Friends.Count >= 1 then
Friends.Item[1].BuddyStatus := 2;

s_UserList := TStringList.Create;
SkypeC.Attach(6, True);
SkypeForm.Caption := SkypeForm.Caption + ' ~ ' + SkypeC.CurrentUser.Handle;

if (SkypeC.CurrentUser.Handle) = '' then
begin
ShowMessage('Доступ к скайпу закрыт');
Close;
end;

for i := 1 to SkypeC.Friends.Count do
begin
if (SkypeC.Friends.Item[i].Handle <> '') and (SkypeC.Friends.Item[I].DisplayName <> '') then
begin
UserListBox.Items.Add(SkypeC.Friends.Item[I].DisplayName + ' (' + SkypeC.Friends.Item[i].Handle + ')');
s_UserList.Add(SkypeC.Friends.Item[I].DisplayName + ' (' + SkypeC.Friends.Item[i].Handle + ')');
end
else if (SkypeC.Friends.Item[i].Handle <> '') and (SkypeC.Friends.Item[I].FullName <> '') then
begin
UserListBox.Items.Add(SkypeC.Friends.Item[I].FullName + ' (' + SkypeC.Friends.Item[i].Handle + ')');
s_UserList.Add(SkypeC.Friends.Item[I].FullName + ' (' + SkypeC.Friends.Item[i].Handle + ')');
end
else if (SkypeC.Friends.Item[i].Handle <> '') then
begin
UserListBox.Items.Add(SkypeC.Friends.Item[i].Handle);
s_UserList.Add(SkypeC.Friends.Item[i].Handle);
end;

end;

end;

Опишу еще одну функцию - изменение строки поиска. Остальной код не буду описывать. Данная процедура проверяет наличие совпадений в TStringList. В случае, если строка пустая, прогружает значение с TStringList, а не с самого скайпа(экономит память, если много контактов).
procedure TSkypeForm.s_FindNameChange(Sender: TObject);
var
I: Integer;
begin
UserListBox.Clear;

if s_FindName.Text = '' then
begin
UserListBox.Items := s_UserList;
end;

for I := 0 to s_UserList.Count - 1 do
begin
if Pos(s_FindName.Text, s_UserList[I]) <> 0 then
begin
UserListBox.Items.Add(s_UserList[I]);
end;
end;
end;

На разработку ушло не более двух часов, потому не судите строго. Исходники прикладываю. Будут вопросы - милости прошу, спрашивайте.

Файлы - [Ссылки могут видеть только зарегистрированные и активированные пользователи]
ВТ не нужен - нету exe файлов.

4ipolino
29.03.2016, 22:47
данный спамер работать не будет
по дефолту в настройках скайпа стоит "не принимать сообщения от не авторизованных пользователей"

SsSsSsr
28.12.2016, 04:55
а добавлялки в друзья никто не продавал?